PostgreSQL:符号化方式UTF8に対する不正なバイト列です
エラー内容
符号化方式"UTF8"に対する不正なバイト列です
invalid byte sequence for encoding "UTF8"
意味
書いてある通り、UTF-8 に対する不正なバイト列なのでエラーになっている。
予想される原因
その他の文字コード(Shift_JIS、EUC、ISO-2022など)をうっかりそのまま入れている。
文字列のバッファが足りなくて、途中で切れている。
データベースの character の桁数は文字数(注1)であってバイト数ではない。
UTF-8 の場合、1文字最大4バイト必要なので、バイト列を格納するバッファは文字数の4倍の長さのバイト数を確保する必要がある。
文字の区切りを考慮せずにバイト列を途中で切っている。
n文字のつもりでnバイトで切断など。
UTF-8はマルチバイト文字コードなので1文字のバイト列の途中で切られると壊れる。
何らかのメモリ破壊(バッファオーバーランなど)で文字列が壊れている。
注釈
(注1) 正確には「文字数」ではなく「コードポイント数」