问题现象:
1:为什么界面有时会显示中文乱码?
2:终端查询报错“invalid byte sequence for encoding “utf8”: 0xd0 ”
3:应用报错“com.kingbase8.util.KSQLException: 错误: 无效的 "GBK" 编码字节顺序: 0xe8”
解决方案:
client_encoding与server_encoding 之间不一致,在存储或读取数据时,会自动进行转换,不会有乱码问题。
对于问题1、2,主要是显示问题,比如客户端的字符集client_encoding与工具的字符集(如SecureCRT)不一致。这种情况影响的只是显示,而不影响数据存储。
对于问题3,可以在驱动层配置连接参数bytestype=bytea,或者在插入数据时强制类型转换。
几种字符编码查看:
1、查看操作系统的编码env | grep LANG
2、查看数据库编码show server_encoding,一般与环境变量LANG相同。
3、查看客户端编码show client_encoding