Encoding 数据编码错误

Encoding 数据编码错误,encoding,utf-8,psycopg2,Encoding,Utf 8,Psycopg2,我的问题是在将csv文件中的数据复制到数据库表中时出现以下编码错误 psycopg2.DataError:编码“UTF8”的字节序列无效:0xf8 提示:如果字节序列与服务器期望的编码不匹配(由“client_encoding”控制),也可能发生此错误 我没有使用任何编码和解码命令。为了将数据从文件复制到表中,我使用以下代码 cur.copy_from(myFile, myTable) 这些文件包含很多特殊字符和wierd数据。但我想存储所有这些数据 EDIT 表格如下: 创建表myTabl

我的问题是在将csv文件中的数据复制到数据库表中时出现以下编码错误

psycopg2.DataError:编码“UTF8”的字节序列无效:0xf8 提示:如果字节序列与服务器期望的编码不匹配(由“client_encoding”控制),也可能发生此错误

我没有使用任何编码和解码命令。为了将数据从文件复制到表中,我使用以下代码

cur.copy_from(myFile, myTable)
这些文件包含很多特殊字符和wierd数据。但我想存储所有这些数据

EDIT
表格如下:

创建表myTable(id整数,名称字符变化(10000))

csv文件的示例为:

 "1";"This is  |_|¨^~~ || ¨text wuth special charater like Bjш;; ø"
 "2";"Test data  -._.- (2010/10/11) "

您写道,您没有指定任何编码,并且psycopg2似乎默认为<代码>0xf8不是有效的单字节UTF-8代码点

您的源文件是否可能位于
0xf8
对应于
ø
的位置

编辑:

有几个地方可以解决这个问题,其中哪一个是正确的取决于您的情况

  • 如果您需要反复导入ISO-8859-1文件,您可能需要使用这些文件来保持脚本的一致性

  • 如果只需要执行一次导入,为什么不简单地将文件转换为Python之外的预期格式,例如或


数据库中列的数据类型是什么?它应该适合你想投入的任何东西

如果要存储字节数据,请使用二进制数据类型。 如果要存储文本数据,请使用字符数据类型


不能指望数据库可以将
.jpg
文件存储为文本,因为它不是文本。

如果希望按原样存储,则不能使用字符数据类型。或者至少不检查编码的有效性。听起来输入数据不是UTF8编码的

您可以修复编码或切换到其他数据类型。
如果您有多个编码不同的输入文件,那么在尝试比较并非所有编码中都存在的字符时,您可能会遇到有趣的比较问题。

我的表的数据类型包含字符变化(10000)和整数。我并没有试图将任何.jpg文件存储为文本。我收到这个错误是因为我在文本中有很多特殊字符,比如:“| | |”,但我想按原样存储它们。如果有欧元,则为-15signs@Stephan:是的,ISO-8859-15也是一种可能性,几乎任何8位编码都是如此。所有ISO-8859变体的代码点都是0xf8。为了保存这些类型的字符,我应该使用哪种数据类型?bytes是str的别名,因此可能无法使用。