Sql server SQL Server生成的“;“文本文件”;使用copy命令将数据导入postgressql

Sql server SQL Server生成的“;“文本文件”;使用copy命令将数据导入postgressql,sql-server,postgresql,utf-8,character-encoding,Sql Server,Postgresql,Utf 8,Character Encoding,我有一个使用SQLServer2005生成的文本文件。当我使用“复制”将文本文件导入到我的一个PostgreSQL表中时,它给了我以下错误: 错误:编码“UTF8”的字节序列无效:0xff 有谁能告诉我将数据从SQL Server 2005获取到PostgreSQL需要做什么吗?如果文件以Windows-1252编码进行索引,那么在运行copy命令之前,您可以使用set client_encoding=Windows_1252切换编码 查看手册中的可用编码列表: 如果文件是以Windows-12

我有一个使用SQLServer2005生成的文本文件。当我使用“复制”将文本文件导入到我的一个PostgreSQL表中时,它给了我以下错误:

错误:编码“UTF8”的字节序列无效:0xff


有谁能告诉我将数据从SQL Server 2005获取到PostgreSQL需要做什么吗?

如果文件以Windows-1252编码进行索引,那么在运行copy命令之前,您可以使用
set client_encoding=Windows_1252
切换编码

查看手册中的可用编码列表:

如果文件是以Windows-1252编码进行索引的,则在运行copy命令之前,您可以使用
set client_encoding=Windows_1252
切换编码

查看手册中的可用编码列表:

SQL Server文本输出(BCP文件?)过去被编写为UTF-16,这是PostgreSQL不支持的Unicode编码。UTF-16文件以0xff 0xfe(或0xfe 0xff)开头,因此这将是首先收到关于该特定字节值的投诉的原因之一

在Linux或类似系统上,我建议使用“recode”或“iconv”实用程序将UTF-16转换为UTF-8,这是PostgreSQL首选的全Unicode编码。在Windows上执行该任务的一个建议是只获取Windows版本的recode:

SQL Server文本输出(BCP文件?)过去被编写为UTF-16,这是PostgreSQL不支持的Unicode编码。UTF-16文件以0xff 0xfe(或0xfe 0xff)开头,因此这将是首先收到关于该特定字节值的投诉的原因之一


在Linux或类似系统上,我建议使用“recode”或“iconv”实用程序将UTF-16转换为UTF-8,这是PostgreSQL首选的全Unicode编码。在Windows上执行该任务的一个建议是只获取Windows版本的重新编码:

我的情况与此完全相同(除了SQL Server 2008而不是2005)。当我使用“SQL Server导入和导出向导”导出文件并选择平面文件作为目标时,“代码页”参数默认为“1252(ANSI-Latin I)”。 因此,在postgreSQL中运行copy命令时,我使用
将client_编码设置为“LATIN1”;

将tablename从“path/to/file.csv”分隔符“|”csv-并且它成功地执行了。

我遇到了完全相同的情况(除了SQL Server 2008而不是2005)。当我使用“SQL Server导入和导出向导”导出文件并选择平面文件作为目标时,“代码页”参数默认为“1252(ANSI-Latin I)”。 因此,在postgreSQL中运行copy命令时,我使用
将client_编码设置为“LATIN1”;

将tablename从“path/to/file.csv”分隔符“|”csv-并且它成功执行。

哪种类型的列中有nul字节?SQLServer转储文本文件的编码是什么?你能显式地告诉它使用UTF-8吗?SQLServer以字符编码方式转储文本文件,我不确定UTF-8的显式用法,字符变化列的声音中有nul字节,就像你有编码问题一样,我猜SQLServer使用的是Windows-1252(看看其中一个0xff字符,如果是“ÿ”)然后是Windows-1252),但需要UTF-8中的字符数据。我不是一个Windows的家伙,所以我不知道你将如何修复编码,但这不是一个罕见的问题,所以希望有人会知道该怎么做。也许这会有帮助:谢谢你的反馈和宝贵的时间有没有人帮助我们哪种类型的列中有nul字节?SQLServer转储文本文件的编码是什么?你能显式地告诉它使用UTF-8吗?SQLServer以字符编码方式转储文本文件,我不确定UTF-8的显式用法,字符变化列的声音中有nul字节,就像你有编码问题一样,我猜SQLServer使用的是Windows-1252(看看其中一个0xff字符,如果是“ÿ”)然后是Windows-1252),但需要UTF-8中的字符数据。我不是一个Windows操作系统的人,所以我不确定你将如何修复编码,但这不是一个罕见的问题,所以希望有人会知道该怎么做。也许这会有帮助:谢谢你的反馈和宝贵的时间有人帮助吗,谢谢你的回复,但我不确定该文件是windows-1252还是其他什么你知道如何查找该文件吗嗨,谢谢你的回复,但我不确定该文件是windows-1252还是其他什么你知道如何查找该文件吗