ASP.NETでデータベース:ORACLEを使用した際に、
ORACLEからデータを取得し、画面に値を戻した場合、
「~」という文字が「?」に文字化けをしてしまうことがあります。
原因は、ORACLEのキャラクタセットがデフォルト(JA16SJIS)
の場合に、ORACLEの文字コードセットをShift-Jisに変換した場合、
「~」が「?」に変換してしまうとのこと。
対象法としては、Ora9.2以降ならば、データベースを作成する際に
文字コードを「JA16SJISTILDE」にし、環境変数を「NLS_LANG=JA16SJISTILDE」
とする。
もしくは.Net側のConfigファイル:
回避が出来るようです。(OSやら環境で違ってくるようですが・・・)
但し、既存のデータベースを利用する場合や、文字コードはShift-Jisという
指定があった場合、上記のような対処は取れません。
この場合は、無理やりプログラム上で「~」を置換してあげるようなロジックを
作成しましょう。
色々調べましたが、文字変換時に文字化けが発生するのはどうやら「~」だけの
ようですので・・・