• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:\copyコマンドでのCSV取り込みの文字化け)

\copyコマンドでのCSV取り込みの文字化け

このQ&Aのポイント
  • WindowのExcelでCSVをPostgreSQLのCOPYコマンドでインポートする際に、EUC-JPの文字化け問題が発生している。
  • デフォルトのDBのエンコードをEUC-JPに設定しているが、SELECTの結果が文字化けしないようにしたい。
  • どこか間違っている箇所があるのか、正しい設定方法を教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

\encoding は、データベースサーバとクライアントとの間で 文字コードを変換することを指示します。 \encoding SHIFT-JIS とすれば、クライアントが扱う文字コードは SHIFT-JIS として、データベースに登録する際は SHIFT-JIS から データベースの文字コードに変換され、データベースからデータを 取り出した場合は、データベースの文字コードから SHIFT-JIS に 変換されて取り出されます。 しかし、これとは別に端末ソフトウェアが扱う文字コードがあります。 ご利用になられている端末ソフトウェアは何でしょうか。 TeraTerm, Putty それとも Linux 上で Gnome 端末でしょうか。 これらの端末ソフトウェアにも文字コードの設定があり、UTF-8 と 設定した端末では SHIFT-JIS に変換されて取り出されたデータは 正しく表示されません。 質問されている例では、端末ソフトウェアの文字コードが UTF-8 と 設定されているのに、データベースからデータを SHIFT-JIS や EUC-JP で取り出しているために化けているのだと思います。

uff-n
質問者

お礼

す、すばらしいい!! 非常に良くわかりました。 感謝です!! ありがとうございました!!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

端末の文字コードが UTF-8 になっているため、 SHIFT-JIS や EUC-JP で表示したときに文字化けしている だけではありませんか。

uff-n
質問者

補足

早速のお返事いただきありがとうございます。 おっしゃるとおり、CentOSの文字コードは、UTF-8ですので、 それ要因だとわかりましたが、理解の仕方でくるしんでいます。 CentOSの文字コードをLANG="ja_JP.eucJP"にしました。 その後、\encoding SJISを実行して、Windowsのcsvファイルは取り込めました。 ちなみにこのとき、DBに格納されている文字コードは、EUC-JPですよね?たぶん。; 続けて、今とりこんだテーブルをselect * from shinamono;のように参照すると、 文字化けしますので、再度、\encoding EUC-JPとして、LANGと同じにしましたが、 まだ、文字化けします。 ここらへん、細かいですが、どのようになっていますでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A