人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

psqlで日本語が表示できません。

puttyターミナルからpsqlコマンドでDBの中をみたいのですが
select * from mytable; などを叩いても
値が日本語の部分だけ<AB><AC><AD>みたいな16進数表示になってしまいます。

DBのエンコーディングはEUC_JP
show client_encoding とすると SQL_ASCII だったので
ここを\encodingでEUC_JPに変えたのですが、状況は変わりませんでした。

●質問者: dedara
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
●100ポイント ベストアンサー

おそらく、psql が呼び出す less の問題だと思います。


試しに、下記のようにやってみて下さい。


$ echo "テスト" >test.txt

$ iconv -f utf8 -t euc-jp <test.txt > test.euc

$ less test.euc


上記は、デフォルトの言語環境が UTF-8 の場合です。nkf が使えるなら、iconv の代わりに「nkf -e test.txt >text.euc」でも構いません。


これで、似た様な表示になれば、less の問題の可能性が高いです。


回避策としては、下記のような方法が考えられます。

client_encoding は、クライアントプログラムが入出力に使う文字コードを決めるものであって、データベースの文字コードと合わせる必要はありません。基本的には、文字コードの変換は、サーバプログラムとクライアントプログラムの間で自動的に変換されます。


文字セットサポート

◎質問者からの返答

回答ありがとうございます。

そもそもコマンドラインから日本語が入力できないようで、提示したくださったテスト手順も試せませんでした。

vimのエディタからであれば、日本語が入力できましたが、それをlessで開こうとすると「test.euc may be a binary file」と出て開けませんでした。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ