【发布时间】:2013-01-19 05:01:08
【问题描述】:
我在使用 JSF 和 EclipseLink JPA 到 MySQL 数据库的 Web 应用程序中遇到大问题。
当我从数据库中读取数据时,JSF 会以 UTF-8 格式读取和写入我的字符。但在数据库中字符不好。
f.e.:输入字符:“żźćółzxcv”,写入数据库:“?????zxcv”。 但是如果我手动将数据写入数据库,例如:“żźćółzxcv”,那么在 JSF 中读取是完美的。
我从这里尝试了一切:Unicode input retrieved via PrimeFaces input components become corrupted
我发现JSF中的编码很好,但问题出在java中,因为如果我手动设置
current.setUwagiZ("żźćóżźćłąśóżźćł TE");
getFacade().edit(current);
数据库记录错误:???ó??????ó???? TE
我在 JDBC Resource 中设置了 characterEncoding 和 useUnicode。此外,当某些工具在 NetBeans 编码中执行命令是可以的并且 MySQL 中的数据是 UTF-8 时,所以连接似乎很好。
所以问题是java,但我完全不知道如何解决这个问题:(
【问题讨论】:
-
你确定你用来浏览数据库的客户端可以处理UTF-8吗?
-
我是这么认为的,因为问题只是在我想插入或编辑数据时
-
尝试使用硬编码插入“ĉ\u0109”,它应该给出两倍的c-circumflex。并检查数据库中的表和字段定义。
标签: java jsf jakarta-ee jpa character-encoding