Как импортировать из файла смешанной кодировки в таблицу PostgreSQL
У меня есть текстовый файл 30 ГБ. кодировка файла UTF8, но она также содержит некоторые символы Windows-1252. Итак, когда я пытаюсь импортировать, выдает следующую ошибку:
ERROR: invalid byte sequence for encoding "UTF8": 0x9b
Как я могу это исправить?
файл уже имеет формат UTF8, когда я запускаю команду 'file' для этого файла, он говорит, что кодировка UTF8. но он также содержит некоторые не байтовые последовательности UTF8. например, когда я запускаю команду \copy через некоторое время, она выдает вышеупомянутую ошибку для этой строки:
0B012234 Basic study of <img src="/fulltext-image.asp?format=htmlnonpaginated&src=323K744431152658_html\233_2 basic study of img src fulltext image asp format htmlnonpaginated src 323k744431152658_html 233_2 1975 Semigroup Forum semigroup forum 04861B53 19555
1 ответ
Решение
Проблема вызвана обратной косой чертой (\
).
Используйте формат CSV, который не обрабатывает обратную косую черту как специальный символ, например:
\copy t from myfile.txt with csv quote E'\x1' delimiter E'\x2'