2016-12-29 64 views
0

我有一個30 GB的文本文件。該文件的編碼是UTF8,但它也包含一些Windows-1252字符。所以,當我嘗試導入時,會出現以下錯誤:如何從混合編碼文件導入到PostgreSQL表

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

我該如何解決這個問題?

該文件已經有UTF8格式,當我運行這個文件的'文件'命令它說編碼是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

在Linux/Unix或cygwin(windows)上使用'iconv'。 http://stackoverflow.com/questions/4867272/invalid-byte-sequence-for-encoding-utf8/4867690#4867690 –

+0

@DuduMarkovitz該文件已經有UTF8格式,當我運行這個文件的'文件'命令它說編碼是UTF8。但它也包含一些不是UTF8字節序列。如何使用命令可以幫助? –

+0

你可以把混合編碼的樣本? –

回答

0

的問題是由反斜槓(\)引起的。
使用CSV格式,不會將反斜線視爲特殊字符,例如 -

\copy t from myfile.txt with csv quote E'\x1' delimiter E'\x2'