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

解決


がり  2005-09-17 03:42:08  No: 92296

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

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-17 03:45:49  No: 92297

お疲れ様です。

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


gari  2005-09-17 05:11:51  No: 92298

いな様

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

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

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

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


gari  2005-09-21 00:30:44  No: 92299

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加