postgresql – 用于编码“UTF8”的无效字节序列

postgresql – 用于编码“UTF8”的无效字节序列,第1张

概述我 trying to import some data到我的数据库。所以我创建了一个临时表, create temporary table tmp(pc varchar(10), lat decimal(18,12), lon decimal(18,12), city varchar(100), prov varchar(2)); 现在我想导入the data, copy tmp from '/ 我 trying to import some data到我的数据库。所以我创建了一个临时表,
create temporary table tmp(pc varchar(10),lat decimal(18,12),lon decimal(18,city varchar(100),prov varchar(2));

现在我想导入the data,

copy tmp from '/home/mark/Desktop/Canada.csv' delimiter ',' csv

但后来我得到的错误,

ERROR:  invalID byte sequence for enCoding "UTF8": 0xc92c

如何解决这个问题?我需要更改我的整个数据库的编码(如果是,如何?)或者我可以只更改我的tmp表的编码?或者我应该尝试更改文件的编码?

如果需要在数据库中存储UTF8数据,则需要一个接受UTF8的数据库。您可以在pgadmin中检查数据库的编码。只需右键单击数据库,然后选择“属性”。

但是这个错误似乎告诉你在你的源文件中有一些无效的UTF8数据。这意味着复制实用程序检测到或猜测您正在向其馈送UTF8文件。

如果你运行在Unix的某个变体下,你可以使用文件实用程序检查编码(或多或少)。

$ file yourfilenameyourfilename: UTF-8 Unicode English text

(我认为这将工作在终端中的Macs。)不知道如何在windows下。

如果对来自windows系统的文件(即,不是用UTF8编码的文件)使用同一个实用程序,它可能会显示如下:

$ file yourfilenameyourfilename: ASCII text,with CRLF line terminators

如果事情变得怪异,你可以尝试将输入数据转换为已知的编码,更改客户端的编码,或两者。 (我们真的伸展了我对编码的了解的极限。)

您可以使用iconv实用程序更改输入数据的编码。

iconv -f original_charset -t utf-8 originalfile > newfile

您可以按照Character Set Support上的说明更改psql(客户端)编码。在该页面上,搜索短语“启用自动字符集转换”。

总结

以上是内存溢出为你收集整理的postgresql – 用于编码“UTF8”的无效字节序列全部内容,希望文章能够帮你解决postgresql – 用于编码“UTF8”的无效字节序列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1172659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存