Какой из лучших методов Postgres multi client_encoding? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть сервер БД и клиент с кодировкой UTF8, и клиент некоторое время записывает данные в SJIS или LATIN1,

ERROR:  invalid byte sequence for encoding "UTF8": 0xd5 0x78

Я пытался установить client_encoding в SJIS, тогда он работал

Интересно, почему произошла эта ошибка?

Поскольку я думаю, что UTF8 поддерживал их обоих, описанных в этом документе

https://www.postgresql.org/docs/11/multibyte.html#id-1.6.10.5.7

Есть ли какой-нибудь способ сделать это автоматическиконвертировать без установки кодировки вручную?

1 Ответ

1 голос
/ 31 октября 2019

Нет, вам нужно явно указать, какую кодировку использует клиент. Postgres поддерживает автоматическое преобразование между кодировками, но не поддерживает автоматическое кодирование обнаружение . Если предполагается, что клиент использует UTF-8, но затем записывает некоторые байты SJIS, они могут просто оказаться недействительными.

...