Строка, которую вы видите с \000
, - это просто строка, которую вы хотите, но она закодирована в UTF-16LE, кодировке символов Windows по умолчанию, которая не поддерживается PostgreSQL.
Вы можете хранить строки в кодировке UTF-16LE в PostgreSQL в виде байтовых массивов, но вы потеряете все функции обработки текста, которые вам, вероятно, необходимы.UTF-16LE - UTF-8 (предпочтительная кодировка PostgreSQL) перед передачей строк в postgreSQL (в командной строке linux я бы использовал iconv
или recode
; ваш пробег может отличаться).Другим вариантом является использование клиента, который выполняет преобразование для вас (вероятно, все клиенты на базе Windows).