2016-12-29 5 views
0

У меня есть текстовый файл размером 30 ГБ. кодировка файла - UTF8, но также содержит некоторые символы Windows-1252. Поэтому, когда я пытаюсь импортировать, он дает следующую ошибку:Как импортировать из файла смешанного кодирования в таблицу PostgreSQL

ERROR: invalid byte sequence for encoding "UTF8": 0x9b 

Как это исправить?

Файл уже имеет формат UTF8, когда я запускаю команду 'file' для этого файла, он говорит, что кодировка UTF8. но он также содержит некоторые не байтовые последовательности UTF8. например, когда я запускаю команду \ копирования через некоторое время он дает вышеуказанную ошибку для этой строки:

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 
+0

Используйте 'iconv' для Linux/Unix или cygwin (windows). http://stackoverflow.com/questions/4867272/invalid-byte-sequence-for-encoding-utf8/4867690#4867690 –

+0

@DuduMarkovitz У файла уже есть формат UTF8, когда я запускаю команду 'file' для этого файла, в которой говорится кодировка UTF8. но он также содержит некоторые не байтовые последовательности UTF8. как может помочь команда inconv? –

+0

Можете ли вы поместить образец со смешанным кодированием? –

ответ

0

Проблема вызвана обратной косой черты (\).
Используйте CSV-формат, который не обрабатывает обратную косую черту как специальный символ, например. -

\copy t from myfile.txt with csv quote E'\x1' delimiter E'\x2' 
Смежные вопросы