- PR -

Accessからテキストへエクスポートするときの文字化け

1
投稿者投稿内容
FHI
会議室デビュー日: 2005/02/04
投稿数: 9
投稿日時: 2005-02-04 13:28
Access2002でOracleのテーブルにリンクを貼っています。
これをテキストファイルにエクスポートすると
ハイフンが?になってしまいます。

さらにやっかいなことに、他の端末で試すと文字化けしません。
これはAccessを再インストールしたほうがよいのでしょうか?
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-02-04 14:22
引用:

FHIさんの書き込み (2005-02-04 13:28) より:
Access2002でOracleのテーブルにリンクを貼っています。
これをテキストファイルにエクスポートすると
ハイフンが?になってしまいます。


これはかなり有名な仕様。
Oracleの持つUnicode変換テーブルと、Windowsの持つUnicode変換テーブルでハイフンの扱いが異なるために発生します。Oracleデータベース内で使用する文字コードをSJIS(或いは逆にUnicode)にする(つまりOracle内部で変換が発生しないようにする)と解決するはず。仕様上どうしてもデータベース格納時の文字コードを変更できない場合は、読み出した後アプリケーション側で文字を置換することで対応する。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
FHI
会議室デビュー日: 2005/02/04
投稿数: 9
投稿日時: 2005-02-04 14:45
甕星さん、返答ありがとうございます。
Oracle側の文字コードを変えるというのはどうやるのですか?
レジストリのNLS_LANGをいじればよいのでしょうか?

ちなみに、現在OracleのNSL_LANGはJP16SJISです。
エクスポートもSJISで行っています。

また、Accessの画面ではハイフンが正しく表示されるのですが、
テキストにエクスポートしたときだけ文字化けします。
Excelなどにエクスポートしても文字化けはありません。
本当に、わけがわかりません。

何が、どうなっているのでしょうか?

FHI
会議室デビュー日: 2005/02/04
投稿数: 9
投稿日時: 2005-02-04 14:54
↑ 訂正

JP16SJISではなくJA16SJISでした。
ちなみに、Oracleクライアント側の設定です。
おふぃすこま
常連さん
会議室デビュー日: 2005/01/24
投稿数: 22
投稿日時: 2005-02-04 14:54
こんにちは。おふぃすこまです。
引用:

さらにやっかいなことに、他の端末で試すと文字化けしません。
これはAccessを再インストールしたほうがよいのでしょうか?


クライアント(Windows)側のレジストリのせいだと思いますよ。
各端末の
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx の NLS_LANG
を見てみて下さい。
基本的にOracle側と合っていないと正しく変換されません。

ちなみに、この類の話しはデータベースの会議室でされた方がレスがつき易いと思います。
FHI
会議室デビュー日: 2005/02/04
投稿数: 9
投稿日時: 2005-02-04 16:33
おふぃすこまさん、返答ありがとうございます。

ちなみに、Accessでなく、
VBで作成したOracleのデータをテキストに書き込むツールを
使用しても文字化けは発生しません。
ですからOracleの文字コードはあっていると思います。
(上記のツールもSJISで書き込むように設定してあるので。)

あくまで、Accessからエクスポートしたときのみです。

Accessの画面上ではハイフンが表示され、エクスポートのプレビュー画面でも
ハイフンは正しく表示されます。

もう、わけがわかりません。

たすけてください。
FHI
会議室デビュー日: 2005/02/04
投稿数: 9
投稿日時: 2005-02-08 15:46
Oracleを再インストールしたら直りました。

以前Windows XPでOracle7をインストールしようと試みた
(当然できるわけないのですが)ときの残骸が
レジストリに残っていたのが悪かったもようです。

レジストリには
存在しないパスが設定されていたりしていました。
どうして今まで動いていたのか不思議なくらいです。

色々ご協力ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)