我正在PostgreSQL上工作,并且从批处理脚本(命令行)执行插入语句时遇到错误。
错误:编码“ UTF8”的字节序列无效:0xeb 0x6e 0x74
我已经通过for (Object[] objects : result) {
DocumentBean documentInfo=(DocumentBean)objects[0];
TableInfoBean userInfo=(TableInfoBean)objects[1];
System.out.println("Kelner="+userInfo.getName()+"\t Masa="+documentInfo.getNote());
TableInfoBean zaedno = new TableInfoBean();
zaedno.setLastname(documentInfo.getNote());
zaedno.setName(userInfo.getName());
userInformation.add(zaedno);
}
命令检查了client_encoding,它显示的是UTF-8。
还使用命令
检查了数据库属性。 show client_encoding
在输出中:
select * from pg_database where datname='<mydbName>'
如何解决此问题?
答案 0 :(得分:2)
如果错误消息中引用的三个字节应该编码为字符串“ënt”,则可以通过设置正确的客户端编码来解决问题,例如
SET client_encoding = WIN1252;
答案 1 :(得分:0)
发生这种情况是因为列名称中有特殊字符。 重命名和删除特殊字符会更改 win-1252 的编码,并且会起作用。