我正在将一个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特殊字符编写,例如
Á 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
只有重音字符ő和ű会造成麻烦。
答案 0 :(得分:0)
尝试添加
的characterEncoding = ISO-8859-2
在你的jdbc驱动程序init
中JDBC:MySQL的://位置/ DBNAME的characterEncoding = ISO-8859-2