
いつもお世話になっております。
前提として、環境は、VMWareの中に、CentOS5があり、PostgreSQL8.4で、
文字コードはEUC-JPをinitdbしています。
今回、WindowのExcelでCSVを、PostgreSQLのCOPYコマンドでインポートできるかを検証しているのですが、下記のような形で、copyコマンドを実行しますと、
結果、UTF-8ですと、文字化けしていませんが、EUC-JPですと、文字化けしてしまいます。
デフォルトのDBのエンコードのEUC-JPで、SELECTの結果が文字化けしてほしくないのですが、どこか、間違っているところありますでしょうか。
お手数をおかけしますが、なにとぞご教授よろしくお願い申し上げます。
[foo@localhost ~]$ psql test
psql (8.4.6)
Type "help" for help.
test=> \encoding SHIFT-JIS
test=> \copy shinamono from /tmp/Book1.csv with csv
test=> select * from shinamono;
hinmei | nedan
---------------------+-------
・スンゑソス・ス・ス | 100
・ス・ス・ス・ス・ス・ス | 150
・ス・ス・ス・ス・ス・ス | 2500
・ス`・ス・ス・スR・ス・ス・ス[・スg | 100
・ス・ス・ス・ス・ス・ス,・スネゑソス・スフセ・スb・スg | 5000
・スワつゑソス・ス・ス ・ス・ス・ス・ス・ス・ス | 10000
・ス`・ス・ス・スR・ス・ス・ス[・スg | 100
・ス・ス・ス・ス・ス・ス,・スネゑソス・スフセ・スb・スg | 5000
・スワつゑソス・ス・ス ・ス・ス・ス・ス・ス・ス | 10000
・ス`・ス・ス・スR・ス・ス・ス[・スg | 100
・ス・ス・ス・ス・ス・ス,・スネゑソス・スフセ・スb・スg | 5000
・スワつゑソス・ス・ス ・ス・ス・ス・ス・ス・ス | 10000
(12 rows)
test=> \encoding EUC-JP
test=> select * from shinamono;
hinmei | nedan
---------------------+-------
・ス゜、・ス・ス・ス | 100
・ス・ス・ス・ス・ス・ス | 150
・ス・ス・ス・ス・ス・ス | 2500
・ス・ス・ス逾ウ・ス・シ・ス・ス | 100
・ス・ス・ス・ス・ス・ス,・スハ、・ス・スΥ・ス・スa・ス | 5000
・ズ、ト、・ス・ス・ス ・ス・ス・ス・ス・ス・ス | 10000
・ス・ス・ス逾ウ・ス・シ・ス・ス | 100
・ス・ス・ス・ス・ス・ス,・スハ、・ス・スΥ・ス・スa・ス | 5000
・ズ、ト、・ス・ス・ス ・ス・ス・ス・ス・ス・ス | 10000
・ス・ス・ス逾ウ・ス・シ・ス・ス | 100
・ス・ス・ス・ス・ス・ス,・スハ、・ス・スΥ・ス・スa・ス | 5000
・ズ、ト、・ス・ス・ス ・ス・ス・ス・ス・ス・ス | 10000
(12 rows)
test=> \encoding UTF-8
test=> select * from shinamono;
hinmei | nedan
---------------------+-------
みかん | 100
りんご | 150
メロン | 2500
チョコレート | 100
メロン,なしのセット | 5000
まつたけ すだち | 10000
チョコレート | 100
メロン,なしのセット | 5000
まつたけ すだち | 10000
チョコレート | 100
メロン,なしのセット | 5000
まつたけ すだち | 10000
(12 rows)
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 で取り出しているために化けているのだと思います。
No.1
- 回答日時:
端末の文字コードが UTF-8 になっているため、
SHIFT-JIS や EUC-JP で表示したときに文字化けしている
だけではありませんか。
この回答への補足
早速のお返事いただきありがとうございます。
おっしゃるとおり、CentOSの文字コードは、UTF-8ですので、
それ要因だとわかりましたが、理解の仕方でくるしんでいます。
CentOSの文字コードをLANG="ja_JP.eucJP"にしました。
その後、\encoding SJISを実行して、Windowsのcsvファイルは取り込めました。
ちなみにこのとき、DBに格納されている文字コードは、EUC-JPですよね?たぶん。;
続けて、今とりこんだテーブルをselect * from shinamono;のように参照すると、
文字化けしますので、再度、\encoding EUC-JPとして、LANGと同じにしましたが、
まだ、文字化けします。
ここらへん、細かいですが、どのようになっていますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(悩み相談・人生相談) 至急! 名指ししていいかわからないので、、、 マイフ◯ス◯スさんと 枯井戸ス◯ープ ヘルニ◯ はもう 3 2023/06/09 00:35
- その他(悩み相談・人生相談) 名指ししていいかわからないので、、、 マイフ◯ス◯スさんと 枯井戸ス◯ープ ヘルニア はもういなくな 3 2023/06/08 23:43
- 父親・母親 「避妊に失敗してあんたの娘妊娠させちゃったんスけどどうすればいいっスかね?俺はあんたの娘と結婚する気 4 2022/06/05 08:55
- その他(ゲーム) おすすめのゲームアプリを教えてください。 一応今までプレイしたことのあるゲーム、合わなかったゲーム、 1 2022/05/06 16:08
- ビジネスマナー・ビジネス文書 医者をしています そうっスねー とか診断してたら苦情言われました敬語使えと スとかタメ口の一歩手前み 6 2023/03/12 18:01
- その他(悩み相談・人生相談) 最近めっちゃセッ〇スしたいと思う時があります。(中3です。) 前はこのようなことはなかったのですが… 4 2022/09/03 21:42
- 小学校 今って小学校の保険の授業でセッ○スについて習う時代なんですか? 9 2022/08/05 23:19
- 一戸建て デッドスペ-スだってお部屋だって同じ空間じゃないのでしょうか? 2 2022/05/01 19:59
- その他(悩み相談・人生相談) 助けて医者に逆ギレされて罵倒されました https://youtu.be/uIbdbL-ECKM こ 3 2023/03/10 22:52
- その他(病気・怪我・症状) 助けて医者に逆ギレされて罵倒されました https://youtu.be/uIbdbL-ECKM こ 2 2023/03/10 22:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PostgresSQLの環境設定について
-
quoteした文字列を使ったSQL文...
-
\\copyコマンドでのCSV取り込み...
-
PostgreSQLの再インストールに...
-
PostgreSQLについて教えてくだ...
-
oracle spool SJIS → UTF-8
-
ディスク上のサイズの乖離が大...
-
ACCESS VBA;コマンドボックス...
-
階層型データベースとVSAM...
-
SQLCMD コマンドでコマンド待機...
-
pg_restoreでエラー
-
PostgresSQLのテーブルを他のサ...
-
新規作成したPostgresqlデータ...
-
Windows版 pg_dumpの結果をログ...
-
ファイルに記述されている複数...
-
AS400でのライブラリ配下の全て...
-
tar.gzファイルのリストアについて
-
ソケットの異常終了について
-
date型に空白を入れるとエラー...
-
pg_dumpの指定パラメータ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLについて教えてくだ...
-
createdbでいきなりつまづいて...
-
SJISのDBは作れますか?
-
PostgreSQLの再インストールに...
-
quoteした文字列を使ったSQL文...
-
PostgresSQLの環境設定について
-
Redhat9 の PostgreSQL
-
ユーザー作成
-
PostgreSQLのpsqlでユーザの扱...
-
PostgreSQLとmySQLのメリット、...
-
RDBとRDBMSの違いは何!?
-
ログイン履歴
-
IDの払い出し(文字列)
-
pgPool-IIの監視について
-
adminIIIの使い方
-
DB毎に保存ディレクトリを変える
-
postgresのdatabase名と、そのe...
-
SQLの日本語表示
-
PL/pgSQL 引数の数
-
phpPgAdminの使い方について
おすすめ情報