- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:"京"の文字化けで困っています。)
【解決方法】S-JISのCSVファイルをEUCに変換してデータベースに登録する際の文字化けの問題
このQ&Aのポイント
- Postgres 7.2.4 サーバを使用し、ECPGにてS-JISのCSVファイルをEUCに変換してデータベースに登録する際に、文字化けの問題が発生しました。
- Windowsのアプリを使用してODBC接続でデータを表示させると、EUCの「京」の漢字が文字化けし、「東京支店」が「東=支店」と表示されます。
- 原因として、EUCの「京」の文字がS-JISの文字コード表に存在しないため、ODBCが正しく変換していない可能性が考えられます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>S-JISの文字コード表にない "京"のS-JISは、"8B9E"だと思うのですが… ところで、CSVファイルをメモ帳やExcelで開いとき、"京"はどのようになっていますか? ここで正しく表示されているなら、EUCに変換する際にミスをしていると考えられます。 また、正しく表示され、EUCにも変換出来ているなら、Windowsアプリ側の問題となります。 メモ帳などで表示されないのなら、EUCに変換出来なくて当然ということになります。 それから、Windows側のOSは何ですか。 OSにより、フォントのバージョンに違いが有ります。それが関係している可能性も考えられます。 WindowsXPではダメでも、Windows7では正しく表示されるかも知れません。 そのあたりをもう一度見直されてはどうでしょうか?
その他の回答 (1)
- YkazubonY
- ベストアンサー率30% (26/86)
回答No.2
Windowsのツールにpsqleditというのがあります。 Linuxのpsqlの様なツールです。 psqleditにてsqlを発行して正常に"京"の文字が表示されれば、 PosgreSQL内にはEUCコードで正常に格納されています。 というか、psqleditの文字コード変換はほぼ100%信頼できますね。 PostgreSQL内に何が格納されているかを、まず確認してみてはどうでしょうか。
質問者
お礼
ご回答ありがとうございます。 psqleditというツールがあるのですね。 今回は使用しませんでしたが、次回問題がおきたときに使用してみたいと思います。 ありがとうございました!
お礼
ご回答ありがとうございます。EUCに変換する際にミスしておりました。CSEというツールでDBを見たときには正常に表示されていたのですが、S-JIS-EUC変換後の文字コードをHEXで出力したところ、1HEXずれて設定されていました。S-JIS-EUC変換のロジックが間違っていたようです。順をおって確認していくということが大事だと勉強になりました。ご回答ありがとうございました。