Postgresqlにてsql文を書く際に、日本語を打ち込むと???と文字化けしてしまい、そのまま実行すると以下のエラー文が出てきます。
ERROR: invalid byte sequence for encoding "UTF8": 0xe7 0xbe 0xe7
類似の質問を見て、文字エンコードの設定も確認して以下の状態です。
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+----------+----------+-------------+-------------+----------------------- javasample | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
UTF-8の状態で問題ないと思うのですが、入力すると以下のようになってしまいます。
insert into book (id, name, price) values (001, '??????', 2000);
【環境】
MacOS
Postgresql varsion 10.7
原因がわからず困っております。
ご教授いただけますと幸いです。
環境(OSなど)を教えてください。
修正致しました。
情報に不足がございましたら、ご指摘いただけますと幸いです。
0xe7 0xbe 0xe7って0xe7はユニコード(UTF-8)開始文字です(たぶん)が0xe7 0xbe 0xe7が分からない?・・・何か心当たりは?参考:https://kenpg.bitbucket.io/blog/201601/12.html 「psqlで符号化方式UTF8における~バイトシーケンスを持つ文字」エラーの対策 (windowsですがポスグレです)
心当たりとしては、他のテーブルにデータを挿入していた時は、文字を打っても文字化けはしてなかったのですが、一回プロセスを切って(¥q)再度立ち上げてから同じことを行った時このような自体となりました。。。。
「SQL文を入力」とありますが、javaプログラム上でSQLを組み立てているという話ですか?
コンソールからpsqlでの入力ならjavaは関係ないと思うのですが。
Java初心者ですので、回答にずれがあればご指摘いただきたいのですが、
SQL Shell(psql)上でSQL文を入力しております。PostgreSQLをダウンロードした際に同時にダウンロードされていました。
コンソールがlaten1とかだったりする?
「0xe7 0xbe 0xe7」はちょっと見慣れないバイト列で気になりますね…。
入力した文字列を教えてください。もし書けないなら適当な文字列を入れてその時の出力と共に書いてください。