QA@IT
«回答へ戻る

回答を投稿

まずは普通に2003サーバーにログインしてなんでもいいですがDBにアクセスするツールをつかって(SQLPlusだとかCSEだとか)で文字化けが起きないことを確認してください(インストールが難しければこれは飛ばしても構いません)。

WinFormsやConsoleApplicationで同じドライバでアクセスするプログラムをやはり普通に2003サーバーにログインして実行し、文字化けが起きないことを確認してください。

そこで既に文字化けが起きるのであれば設定(環境変数や接続文字列含む)がおかしいかインポートの段階でデータがすでに変わってしまっている可能性があります。

そこでうまくいくのにASP.NETでだけうまくいかないのであれば、ASP.NETが参照している環境変数なりレジストリなりで正しいNLS_LANGを拾えていないのだと思います。

ASP.NETが動くプロセスは一般ユーザーのものではありませんので、試しにASP.NETから Environment.GetEnvironmentVariables();
を使って環境変数を見てみるといいかもしれません。

まずは普通に2003サーバーにログインしてなんでもいいですがDBにアクセスするツールをつかって(SQLPlusだとかCSEだとか)で文字化けが起きないことを確認してください(インストールが難しければこれは飛ばしても構いません)。
 
WinFormsやConsoleApplicationで同じドライバでアクセスするプログラムをやはり普通に2003サーバーにログインして実行し、文字化けが起きないことを確認してください。

そこで既に文字化けが起きるのであれば設定(環境変数や接続文字列含む)がおかしいかインポートの段階でデータがすでに変わってしまっている可能性があります。

そこでうまくいくのにASP.NETでだけうまくいかないのであれば、ASP.NETが参照している環境変数なりレジストリなりで正しいNLS_LANGを拾えていないのだと思います。

ASP.NETが動くプロセスは一般ユーザーのものではありませんので、試しにASP.NETから `Environment.GetEnvironmentVariables();`
を使って環境変数を見てみるといいかもしれません。