ORACLEデータ取得時の文字化け

解決


ころころ  2003-11-28 13:32:01  No: 110305  IP: [192.*.*.*]

VB6、WinXpでOrcale9を利用しデータを取得したところ、
「〜」(チルダ)が正常に取り込めません。
文字コード設定もしくは、select文などに何か指定が必要でしょうか?

編集 削除
魔界の仮面弁士  2003-11-28 14:38:20  No: 110306  IP: [192.*.*.*]

これは、文字コードの相互変換における、有名な問題だったりします。
OTNの掲示板でも、時折話題になっていますね。
http://otn.oracle.co.jp/forum/index.html

Oracle側の文字コード設定がどうなっているのかを、
データベースの管理者に確認してもらってください。

文字コード設定が「JA16SJIS」になっているのであれば、それを
「JA16SJISTILDE」にする事で回避できるかと思います。

編集 削除
魔界の仮面弁士  2003-11-28 14:46:48  No: 110307  IP: [192.*.*.*]

なお、JA16SJISTILDE でデータベースを構築するには、
Oracleの R9.0.1.4以上が必要となります。

それ以前のバージョンを使用している場合は、製品間の
「WAVE DASH」と「TILDE」の割り当ての違いを吸収するために、
自分で、(VBのReplace関数を使うなどして)事前/事後変換を
行うようにしてみてください。

(googleで『JA16SJISTILDE』を検索すると、関連情報が見つかるでしょう)

編集 削除
ころころ  2003-11-28 16:56:18  No: 110308  IP: [192.*.*.*]

魔界の仮面弁士さん、ありがとうございます。
おっしゃるように下記のように設定してみましたが、
うまくいきません。
NLS_LANGUAGE                    JAPANESE
NLS_TERRITORY                   JAPAN
NLS_CURRENCY                    \
NLS_ISO_CURRENCY                JAPAN
NLS_NUMERIC_CHARACTERS          .,
NLS_CALENDAR                    GREGORIAN
NLS_DATE_FORMAT                 RR-MM-DD
NLS_DATE_LANGUAGE               JAPANESE
NLS_CHARACTERSET                JA16SJISTILDE
NLS_SORT                        BINARY
NLS_TIME_FORMAT                 HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT            RR-MM-DD HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT              HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT         RR-MM-DD HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY               \
NLS_NCHAR_CHARACTERSET          UTF8
NLS_COMP                        BINARY
NLS_LENGTH_SEMANTICS            BYTE
NLS_NCHAR_CONV_EXCP             FALSE
設定が間違えているのでしょうか?
またクライアント側の設定も変える必要がありますか?

編集 削除
魔界の仮面弁士  2003-11-28 18:18:02  No: 110309  IP: [192.*.*.*]

> またクライアント側の設定も変える必要がありますか?
文字コードが変換される事を防ぐため、クライアント側とサーバ側の
両方の環境変数を、Japanese_Japan.JA16SJISTILDE に統一してみてください。
(oo4oの場合)

編集 削除
ころころ  2003-12-03 13:07:45  No: 110310  IP: [192.*.*.*]

クライアント側とサーバ側の両方の環境変数というのは、oracleの環境変数のことだと思います。
どの変数をどのように変えればよいのでしょうか?

編集 削除
魔界の仮面弁士  2003-12-03 13:26:48  No: 110311  IP: [192.*.*.*]

OSによっても変わりますが、WinXPであれば、
マイコンピュータのプロパティから、[詳細設定]-[環境変数]および、
レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE以下にて設定します。

なお、質問内容が、VBとは直接関係ない方向に向かってきましたので、
具体的な設定方法がわからない場合は、Oracleのサポート等を利用してください。

編集 削除
ころころ  2003-12-03 13:49:51  No: 110312  IP: [192.*.*.*]

魔界の仮面弁士さま
いろいろありがとうございました。
DB構築時に設定を行い、さらに環境変数を設定することできちんと表示できるようになりました。
VB以外についてもいろいろと教えていただきありがとうございました。

編集 削除