我从webservice获取包含此子串gratuit.AFLĂ MAI MULTEDe
的字符串。当我在我的本地(Windows)数据库中保存这个工作正常,但当我尝试在服务器上保存时,它在Linux上部署我得到以下错误:
Incorrect string value: '\xC4\x82 MAI...' for column 'description' at row 1
我正在使用hibernate 3.3和mysql 5.5(包括windows和linux)和数据库使用默认编码(latin1)。
我已经尝试在JAVA_OPT中设置-Dfile.encoding=UTF8
但是没有用,我认为这是与os相关的问题。
有什么建议吗?
答案 0 :(得分:0)
(一般来说,现在我会用UTF-8完成所有工作。)有一长串的点可以设置编码。从Web服务中,您可能获得UTF-8中的XML。这是自动正确读取的,因为XML处理严格的编码。
在数据库级别,存在具有默认和显式编码的数据库和表和字段。此外,连接URL应该参数化为正确的编码。
错误消息显示重音 A 的UTF-8字节,我猜它在Latin1中不可用。 对于MySQL,连接字符串可能如下所示:
jdbc:mysql://localhost/MYDB?useUnicode=true&characterEncoding=UTF-8