質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

1599閲覧

JavaでSQL文に文字を入れると???と文字化けしてしまうエラーを回避する方法

hiro610

総合スコア12

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/02/26 06:42

編集2022/01/12 10:55

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

原因がわからず困っております。
ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2019/02/26 06:49

環境(OSなど)を教えてください。
hiro610

2019/02/26 06:52

修正致しました。 情報に不足がございましたら、ご指摘いただけますと幸いです。
cateye

2019/02/26 07:36 編集

0xe7 0xbe 0xe7って0xe7はユニコード(UTF-8)開始文字です(たぶん)が0xe7 0xbe 0xe7が分からない?・・・何か心当たりは?参考:https://kenpg.bitbucket.io/blog/201601/12.html 「psqlで符号化方式UTF8における~バイトシーケンスを持つ文字」エラーの対策  (windowsですがポスグレです)
hiro610

2019/02/26 07:31

心当たりとしては、他のテーブルにデータを挿入していた時は、文字を打っても文字化けはしてなかったのですが、一回プロセスを切って(¥q)再度立ち上げてから同じことを行った時このような自体となりました。。。。
sazi

2019/02/26 07:44 編集

「SQL文を入力」とありますが、javaプログラム上でSQLを組み立てているという話ですか? コンソールからpsqlでの入力ならjavaは関係ないと思うのですが。
hiro610

2019/02/26 07:45

Java初心者ですので、回答にずれがあればご指摘いただきたいのですが、 SQL Shell(psql)上でSQL文を入力しております。PostgreSQLをダウンロードした際に同時にダウンロードされていました。
退会済みユーザー

退会済みユーザー

2019/02/26 07:59

コンソールがlaten1とかだったりする?
ikadzuchi

2019/02/26 16:52

「0xe7 0xbe 0xe7」はちょっと見慣れないバイト列で気になりますね…。 入力した文字列を教えてください。もし書けないなら適当な文字列を入れてその時の出力と共に書いてください。
guest

回答1

0

SQL Shell(psql)のプロパティを表示して、現在のコードページを確認して下さい。
入力するコード体系と一致している必要があります

コードページを変更する場合は、client_encodingを設定する必要があります。
Windows環境でpsqlコマンドを使ってSQLをファイル実行するときにエンコーディングでハマった

投稿2019/02/26 07:59

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問