字符编码:java.sql.SQLException:字符串值不正确:'\ xF5fi S \ xE1 ...'列

时间:2013-12-05 10:08:10

标签: java mysql spring-mvc character-encoding

我正在将一个spring-mvc jpa应用程序写入遗留数据库。数据库表的字符集是iso-8859-2(latin2)。由于遗留原因,这不能改变。

数据库是mysql 5.5。 jpa实现是hibernate 4。

数据库中的字段可以包含重音字符,例如“áéíöőüű”等。 当我尝试合并对象,更新数据库时,我得到了一个

SQLException: Incorrect string value : '\xF5fi S\xE1...' for column"

表示价值“PetőfiSándor”。

视图是jsp-s,我将编码设置为ISO-8859-2:

<meta charset="ISO-8859-2">

并且字符显示正确,(在输入字段中使用html特殊字符编写,例如

 &Aacute; instead of Á

但它们显示正常。

我在这里看过类似的问题,但没有找到解决方案。如果有人知道解决方案,我将非常感激。我现在正处于泡菜中。

修改 表定义中的相关部分:

CREATE TABLE `cimek` (
...
`name` varchar(30) COLLATE latin2_hungarian_ci NOT NULL,
...
) ENGINE=InnoDB AUTO_INCREMENT=4040
 DEFAULT CHARSET=latin2 COLLATE=latin2_hungarian_ci

只有重音字符ő和ű会造成麻烦。

1 个答案:

答案 0 :(得分:0)

尝试添加

的characterEncoding = ISO-8859-2

在你的jdbc驱动程序init

JDBC:MySQL的://位置/ DBNAME的characterEncoding = ISO-8859-2