SQL:解决PostgreSQL数据库传输出现ERROR: invalid byte sequence for encoding “UTF8“: 0xe5 0x9b 0x20
发布日期:2021-06-30 15:42:05
浏览次数:3
分类:技术文章
本文共 835 字,大约阅读时间需要 2 分钟。
在项目中,使用PostgreSQL数据库存储数据,由于客户需求,需要新建一个几乎相同项目,需要新建项目、数据库后更改少量功能。而使用导出数据库/导入数据库功能拷贝数据表到新数据库时出现了以下错误:
ERROR: invalid byte sequence for encoding “UTF8”: 0xe5 0x9b 0x20 百度后,得出的结论是: invalid byte sequence for encoding “UTF8”: 0x00(注意:若不是0x00则很可能是字符集设置有误),是PostgreSQL独有的错误信息,直接原因是varchar型的字段或变量不接受含有’\0’(也即数值0x00、UTF编码’\u0000’)的字符串 。官方给出的解决方法:事先去掉字符串中的’\0’。 这是PostgreSQL特有的错误,官方也给出了解决方案,如果数据不多,显然是可行的。可是项目牵扯到的数据太多,这并不是一个好的方法。 找了很多方案,最后解决了问题,流程是先在新数据库中用语句构造表结构、字段相同的数据表,然后使用Navicat数据同步功能将两个数据表内容进行同步。1.打开pgAdmin,找到原数据库的构造语句。
2.到新的数据库中,新建查询语句粘贴后并运行。 我是使用的Navicat进行的操作,因为pgAdmin实在太慢了= = 运行后,可能会出现relation “a_trend_id_seq” does not exist错误。这是因为图中绿色部分语句造成的。这句话是pgsql中序列函数,构造自增id。 解决方法是把这一句更换为serial,如图 即可创建成功。 3.点击Navicat菜单栏中的工具,使用数据同步功能。 部署完成后即把源数据库中数据表拷贝到的新的数据库。我用这个方法解决了我的问题,但是不确定适用于所有项目。因为我用一些其他的方法尝试过并没有解决我的问题,如果各位有更加便捷或能解决问题的方法,欢迎分享一下,万分感谢!
转载地址:https://kaisarh.blog.csdn.net/article/details/102855464 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月28日 06时16分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
solr修改schema文件(solr修改配置文件)
2021-07-03
select下拉框分组展示插件的使用--(select-mania插件的使用)
2021-07-03
Java Lambda表达式的应用--Stream API操作集合框架
2021-07-03
Myslq连接(JDBC)url属性的参数的设置
2021-07-03
关于Spring MVC与前端的交互
2021-07-03
大厂经典面试题:Redis为什么这么快?
2021-07-03
Android之Retrofit基本用法篇
2021-07-03
Netty与网络协议资料整理
2021-07-03
Golang 逃逸分析
2021-07-03
golang实现大数据量文件的排序
2021-07-03
golang中的time包
2021-07-03
2019NOIP D4题 加工领奖
2021-07-03
2021.5.19 JS高级第二天
2021-07-03
啊沙发沙发
2021-07-03
SpringBoot内置Tomcat配置参数
2021-07-03
局部加权回归
2021-07-03
Mysql 入门
2021-07-03
linux 查看文件夹权限
2021-07-03
ubuntu 快捷键
2021-07-03