「〜」を正しく取得するには!?

解決


がり  2005-09-16 18:42:08  No: 92296  IP: [192.*.*.*]

いつもお世話になっております。

VB.NET 2003にて、Oracleからのデータの取得に
System.Data.OracleClient.OracleDataReaderを用いて、

oraReader = oraCommand.ExecuteReader()
として、データを取得しています。

この時、
oraReader.Read()
oraReader.Item(0)
とした時、全角チルダ「〜」を含んでいて、これをファイルに書き込むと、
「?」にかわってしまいます。

Oracle側のレジストリ、
NLS_LANGはJAPANESE_JAPAN_JA16SJISTILDE
になっていますし、DBもそれで作っています。

また、Oracle 9.0.1.1、9.2.0.1、10.1.0.2
のいずれで試しても同様の現象が発生しました。

これとは別に、OracleInProcServer(OO4O)で取得した時にはちゃん「〜」
と表示されるので、プログラム側もしくはSystem.Data.OracleClient.dll
の問題と思われるのですが、原因が分かりません。

特に、OracleDataReaderを使ってデータを取得しなくてもよいので、
別の方法でうまくいく方法があればそれでも構いませんので、解決方法
があれば御教授くださいませ。

編集 削除
いな  2005-09-16 18:45:49  No: 92297  IP: [192.*.*.*]

お疲れ様です。

ウェーブダッシュ問題
でググルと解決するかと・・・。

編集 削除
gari  2005-09-16 20:11:51  No: 92298  IP: [192.*.*.*]

いな様

早速の回答ありがとうございます。

書き込む前にもウエーブダッシュ問題で検索してみましたが、
System.Data.OracleClientによる取得時の解消方法はありませんでした。

上記しておりますが、OO4Oを使った時は問題なく取得できるので、
もしかしたらSystem.Data.OracleClientでは対応してないのかなとも
思っています…

ODP.NET使わないとダメなのでしょうかね…

編集 削除
gari  2005-09-20 15:30:44  No: 92299  IP: [192.*.*.*]

とりあえず、プログラム側でEncodeして対応することにしました。

編集 削除