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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

13351閲覧

PostgreSQLで"invalid byte sequence for encoding "UTF8": 0xa5"というエラーがでます

hitouch

総合スコア7

PostgreSQL

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/01/27 06:30

編集2018/01/27 06:39

前提・実現したいこと

SQLを本を見ながら勉強中です。ものすごく初心者です。
その過程で、PostgreSQL にて、テーブルにデータを登録したいと思っています。

発生している問題・エラーメッセージ

サンプルデータを、テキストからコピーして、実行しようとしたら以下のエラーがでました。

invalid byte sequence for encoding "UTF8": 0xa5

該当のソースコード

START TRANSACTION; INSERT INTO test VALUES ('0001', 'ああああ', 'いいいいい', 100, NULL, '2018-01-01'); COMMIT;

試したこと

Mac のターミナル設定の詳細で、
・テキストエンコーディングを"日本語(EUC)"にしました。
・「Unicode 東アジアA(曖昧)の文字列をW(広)にする」にチェックをいれました。
そうすると、上記で'ああああ'となっているところの文字化けはなおったのですが、エラーはなおらず。
ちなみに、 \encoding といれると、UTF8 とでます。

原因と対策がわからず進めません。助けていただければ嬉しいです。

補足情報(FW/ツールのバージョンなど)

Mac OS Siera
バージョン 10.12.3

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

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

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

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

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

guest

回答1

0

ベストアンサー

Mac のターミナル設定の詳細で、

・テキストエンコーディングを"日本語(EUC)"にしました。
・「Unicode 東アジアA(曖昧)の文字列をW(広)にする」にチェックをいれました。
そうすると、上記で'ああああ'となっているところの文字化けはなおった

ということは元のデータ(SQLが書かれているテキストファイル)のエンコーディングが EUC なのでしょう。それでは、エラーになって当たり前です。EUC のファイルを UTF-8 に変換する必要があります。いろいろ方法はありますが、今文字化けせずに見えているのであれば、それをテキストエディットにコピペして保存時の「標準テキストのエンコーディング」で「Unicode(UTF-8)」を選択して保存するのが簡単です。 UTF-8 のファイルができると思いますので、そちらを読み込ませてみてください。
また、データベースのエンコーディングが UTF-8 なのであれば、使うターミナルやエディタもすべて UTF-8 を使われるようにされたほうが良いと思います。

投稿2018/01/27 06:44

mit0223

総合スコア3401

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

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

hitouch

2018/01/27 07:08

お早い回答ありがとうございます。助かります。 試してみたのですが、だめでした。標準テキストのエンコーディングで、ファイルを保存するとき、開くとき、それぞれを、「Unicode(UTF-8)」に変更してみて試しましたが、以前と同様のエラーがでました。 念のためMac のターミナル設定も、テキストエンコーディングも、"日本語(EUC)"でも試し、「Unicode(UTF-8)」でも試してみたのですが、同様のエラーがでました。
hitouch

2018/01/27 08:02

文章を、手打ちにしてみたらうまくいきました(エラーがでませんでした)。 コピーの問題か、やはりコピー前のエンコーディングがうまく反映されていないかですかね。
mit0223

2018/01/27 08:26

ちょっと説明が足りてませんでした。古いファイルを開いてしまうとEUCのものを読み込んでしまうので中身が変わりません。ファイル→新規でウィンドウを開いて、そこに文字化けしていないものを貼り付ければできると思います。こちらで試してみましたが、できております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問