前提・実現したいこと
■使用環境
windows10にPostgreSQL12を導入
使用した手順のURL:PostgreSQLの使い方
■実現したいこと
cmdで.batファイルから.sqlファイルを呼び出してデータベースで対象のテーブルに検索コマンドを流したい。
発生している問題・エラーメッセージ
cmdのコンソール上に日本語の文を出力したいが、文字化けする。
該当のソースコード
■データベース設定(アクセス権は何も設定していないので省略)
postgres=# \l
名前 | 所有者 | エンコーディング| 照合順序 | Ctype(変換演算子)
-----+----------+-----------------+--------------------------+---------------------
test | postgres | UTF8 | Japanese_Japan.20932 | Japanese_Japan.20932 |
■.batファイル(UTF-8)
cmd
1@echo off 2 3REM 接続先情報 4set HOST=127.0.0.1 5set PORT=5432 6set USER_ID=postgres 7set DB_NAME=test 8 9REM DBログイン 10psql -h %HOST% -p %PORT% -U %USER_ID% -d %DB_NAME% -f aaa.sql
■.sqlファイル(文字コード:UTF-8)
sql
1¥c test 2select current_database(); 3 4select * FROM test.test WHERE object_name='ボール' and keyword1='画像'; 5 6\echo '以下のファイルがヒットしました' 7
試したこと
■.sqlファイル内に下記のコマンドを追加する
sql
1SHOW client_encoding; 2\encoding EUC_JP
sql
1SHOW client_encoding; 2\encoding UTF8
■「C:\Program Files\PostgreSQL\12\data\postgresql.conf」内の下記の設定を変更する
lc_messages = 'Japanese_Japan.932'
を
lc_messages = 'en_US' や lc_messages = 'UTF8' に変更して試してみました。
■cmdの設定を下記のコマンドを使用して変更する
chcp 932
chcp 65001
調べてみて色々試しましたが、どうしてもできなかったので質問させてください。上記の情報の不足分がありましたらご指摘いただけると幸いです。
.sqlファイルでechoを使用した日本語文の出力は個人的に違和感がありますが、どうしてもしたいので何卒宜しくお願い致します。