sql >> データベース >  >> RDS >> PostgreSQL

UTF8をエンコードするための無効なバイトシーケンス

    UTF8データをデータベースに格納する必要がある場合は、UTF8を受け入れるデータベースが必要です。データベースのエンコーディングはpgAdminで確認できます。データベースを右クリックして、[プロパティ]を選択します。

    しかし、そのエラーは、ソースファイルに無効なUTF8データがあることを示しているようです。つまり、copy ユーティリティは、UTF8ファイルをフィードしていることを検出または推測しました。

    Unixのいくつかのバリアントで実行している場合は、fileを使用してエンコーディングを(多かれ少なかれ)確認できます。 ユーティリティ。

    $ file yourfilename
    yourfilename: UTF-8 Unicode English text
    

    (これはターミナルのMacでも機能すると思います。)Windowsでそれを行う方法がわかりません。

    Windowsシステムからのファイル(つまり、 ではないファイル)で同じユーティリティを使用する場合 UTF8でエンコードされている場合)、おそらく次のように表示されます:

    $ file yourfilename
    yourfilename: ASCII text, with CRLF line terminators
    

    状況がおかしい場合は、入力データを既知のエンコーディングに変換するか、クライアントのエンコーディングを変更するか、またはその両方を試みることができます。 (私たちは、エンコーディングに関する私の知識の限界を本当に広げています。)

    iconvを使用できます 入力データのエンコーディングを変更するユーティリティ。

    iconv -f original_charset -t utf-8 originalfile > newfile
    

    文字セットのサポートの指示に従って、psql(クライアント)エンコーディングを変更できます。そのページで、「自動文字セット変換を有効にするには」というフレーズを検索します。



    1. MicrosoftAccessでインベントリデータベースを作成する方法

    2. 日ごとにカウント/グループ化し、データのない日を表示するPostgreSQLクエリ

    3. Node.jsを介してPostgresに接続する方法

    4. 今年の最初と最後の日付を取得するにはどうすればよいですか?