【发布时间】:2013-12-05 10:08:10
【问题描述】:
我正在将 spring-mvc jpa 应用程序写入旧数据库。数据库表的字符集是 iso-8859-2 (latin2)。由于遗留原因,这无法更改。
数据库是mysql 5.5。 jpa 实现是hibernate 4。
数据库中的字段可以包含重音字符,例如“áéíöőüű”等。 当我尝试合并对象、更新数据库时,我得到一个
SQLException: Incorrect string value : '\xF5fi S\xE1...' for column"
对于值“Petőfi Sá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
只有重音字符 ő 和 ű 会造成麻烦。
【问题讨论】:
-
你能发布表和列的定义吗?数据库应该接受
\xF5。 -
整个表格定义太长了,不过我会添加相关部分作为编辑。
标签: java mysql spring-mvc character-encoding