linux和mysql的字符编码问题

时间:2011-12-05 11:49:47

标签: java mysql character-encoding

我从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相关的问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

(一般来说,现在我会用UTF-8完成所有工作。)有一长串的点可以设置编码。从Web服务中,您可能获得UTF-8中的XML。这是自动正确读取的,因为XML处理严格的编码。

在数据库级别,存在具有默认和显式编码的数据库和表和字段。此外,连接URL应该参数化为正确的编码。

错误消息显示重音 A 的UTF-8字节,我猜它在Latin1中不可用。 对于MySQL,连接字符串可能如下所示:

jdbc:mysql://localhost/MYDB?useUnicode=true&characterEncoding=UTF-8