Windows版 psql で文字化けする[PostgreSQL]
(2026-05-18 07:38:04) by shinoda


< ページ移動: 1 2 >

<画像:20260518_postgres.jpg>

Windows版の psql を立ち上げると、新しいウィンドウが開き、サーバ名やデータベース名などを最初に聞かれるんだが、ここで Client Encoding で UTF8 を指定してしまい、テーブルを作成しようとして失敗し、情報も文字化けという悲しいことになった。

Server [localhost]:
Database [postgres]: rmdb
Port [5432]:
Username [postgres]: runmanager
Client Encoding [SJIS]: UTF8
ユーザー runmanager のパスワード:

psql (18.3)
"help"でヘルプを表示します。

rmdb=> CREATE TABLE t_receive_log (
rmdb(>
rmdb(>  id               int NOT NULL, -- レースID
rmdb(>  log_no           int NOT NULL, -- レース内ログ・ファイル番号
rmdb(>  log_path         varchar(1024) NOT NULL, -- ログファイルのフルパス
rmdb(>  note             varchar(128), -- ログ・ファイルの説明
rmdb(>  cdate            timestamp without time zone,
rmdb(>  udate            timestamp without time zone,
rmdb(>
rmdb(>   CONSTRAINT t_receive_log_pkey PRIMARY KEY (
rmdb(>     id, log_no
rmdb(>   )
rmdb(> );
ERROR:  invalid byte sequence for encoding "UTF8": 0x83
rmdb=> \d
                  リレーション一覧
 \x83X\x83L\x81[\x83} | \x96\xBC\x91O |     \x83^\x83C\x83v     | \x8F\x8A\x97L\x8E
----------------------+---------------+-------------------------+-------------------
 public               | m_race        | \x83e\x81[\x83u\x83\x8B | runmanager
(1 行)


そう。Windows の端末文字コードって、Windows11の今でも Shift_JIS なんやね。
まあ、俺は DB のエンコードのことかと完全に認識が間違ってたんだけど(笑)

というわけで、Client Encoding を Shift_JIS に修正してもう一度 TABLE CREATE を実行。
問題なくテーブルが作成された(まあ、CREATE文の日本語でのコメントを消せば実行できたんだけど(笑)。それは本質的な解じゃないからな(笑))

< ページ移動: 1 2 >


コメント投稿
次の記事へ >
TOPへ戻る

Powered by
MT4i 3.0.8