掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
oracleの「〜」を文字化けせずに取得するには? (ID:30389)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になっております。 ちゃかです。 環境は以下の通りです。 ・Windows Vista Bussiness ・Delphi 7 Professinal ・Oracle 10g 早速ですが、質問です。 以下のようにADOQueryを使用し、oracleに接続し、文字列を取得しようと思っています。 しかし、「〜」が「?」となって文字化けしてしまいます。 解決方法を探していたのですが、どうやらOracle の UNICODE のコードマッピングが原因なようです。 (引用元:http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=071738) しかし、オラクルの設定をキャラセットを「Windows-31J」等に変更すれば解決するらしいのですが 環境を変えるのはこちらの都合で申し訳ないのですが不可能なのです(すいません・・・)。 ネット上にある文字列変換関数ユニットを使用してみたのですがどうもうまくいきません。 (SJIStoUTF,SJIStoUTFN,UTFtoSJIS,UTFNtoSJIS,JisToSJis,SJisToJis,HanToZen, HanToZen2,UTFtoSJIS,UTFNtoSJIS,Utf8Decode,Utf8Encode等々・・・) VBでは VBのReplace関数を使用した「〜」文字化け対策の例】 strSHONIN_NAME = Replace("" & OraDynaset("SHONIN_NAME"), ChrW(12316), "〜", 1, -1, vbTextCompare) と簡単に変換できるようなのですが、Delphiでは不可能なのでしょうか? 皆様のお力をお借りしたいです。 多くの方がこの問題にて躓いてるみたいなので既出だと思います。 自分の情報収集能力の無さに愕然としながら恥を忍んで質問させていただきました。 どうかよろしくお願い致します。 //----------------------------------------- //以下ソース //----------------------------------------- ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from test'); ADOQuery1.Open; while ADOQuery1.Eof = False do begin showmessage(ADOQuery1.FieldByName('text').AsString); ADOQuery1.Next; end; ADOQuery1.Close; 結果:DB上「あいう」 →「あいう」 : 「え〜お」 →「え?お」
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.