▽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」と出て開けませんでした。