- - PR -
Accessからテキストへエクスポートするときの文字化け
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-04 13:28
Access2002でOracleのテーブルにリンクを貼っています。
これをテキストファイルにエクスポートすると ハイフンが?になってしまいます。 さらにやっかいなことに、他の端末で試すと文字化けしません。 これはAccessを再インストールしたほうがよいのでしょうか? | ||||
|
投稿日時: 2005-02-04 14:22
これはかなり有名な仕様。 Oracleの持つUnicode変換テーブルと、Windowsの持つUnicode変換テーブルでハイフンの扱いが異なるために発生します。Oracleデータベース内で使用する文字コードをSJIS(或いは逆にUnicode)にする(つまりOracle内部で変換が発生しないようにする)と解決するはず。仕様上どうしてもデータベース格納時の文字コードを変更できない場合は、読み出した後アプリケーション側で文字を置換することで対応する。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2005-02-04 14:45
甕星さん、返答ありがとうございます。
Oracle側の文字コードを変えるというのはどうやるのですか? レジストリのNLS_LANGをいじればよいのでしょうか? ちなみに、現在OracleのNSL_LANGはJP16SJISです。 エクスポートもSJISで行っています。 また、Accessの画面ではハイフンが正しく表示されるのですが、 テキストにエクスポートしたときだけ文字化けします。 Excelなどにエクスポートしても文字化けはありません。 本当に、わけがわかりません。 何が、どうなっているのでしょうか? | ||||
|
投稿日時: 2005-02-04 14:54
↑ 訂正
JP16SJISではなくJA16SJISでした。 ちなみに、Oracleクライアント側の設定です。 | ||||
|
投稿日時: 2005-02-04 14:54
こんにちは。おふぃすこまです。
クライアント(Windows)側のレジストリのせいだと思いますよ。 各端末の HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx の NLS_LANG を見てみて下さい。 基本的にOracle側と合っていないと正しく変換されません。 ちなみに、この類の話しはデータベースの会議室でされた方がレスがつき易いと思います。 | ||||
|
投稿日時: 2005-02-04 16:33
おふぃすこまさん、返答ありがとうございます。
ちなみに、Accessでなく、 VBで作成したOracleのデータをテキストに書き込むツールを 使用しても文字化けは発生しません。 ですからOracleの文字コードはあっていると思います。 (上記のツールもSJISで書き込むように設定してあるので。) あくまで、Accessからエクスポートしたときのみです。 Accessの画面上ではハイフンが表示され、エクスポートのプレビュー画面でも ハイフンは正しく表示されます。 もう、わけがわかりません。 たすけてください。 | ||||
|
投稿日時: 2005-02-08 15:46
Oracleを再インストールしたら直りました。
以前Windows XPでOracle7をインストールしようと試みた (当然できるわけないのですが)ときの残骸が レジストリに残っていたのが悪かったもようです。 レジストリには 存在しないパスが設定されていたりしていました。 どうして今まで動いていたのか不思議なくらいです。 色々ご協力ありがとうございました。 |
1