虽然这个主题是反复出现的,即使我两天试图解决这个问题到目前为止都失败了。
我有一个使用GlassFish 3.1.2,JSF2.0,EJB3.0和MySQL在NetBeans 7.3中创建的Web项目
我正处于项目的开头并遇到了这个问题,如下所示:当我在inputText上输入一些带有á,à,ã,ç等的单词时,这个单词存储有奇怪的字符数据库。 我尝试解决的问题:
1 - )我将项目编码设置为UTF-8。右键单击项目>性状>编码= UTF-8。 2 - )编译选项 - enconding = UTF-8。右键单击项目>性状>编译编码= UTF8。 3 - )vm-options = Dfile.encoding = UTF-8。右键单击项目>性状>运行= -Dfile.encoding = UTF-8。 4 - )private.properties项目netbeans,我添加了一行:runtime.encoding = UTF-8。 5 - )更改了netbeans安装文件夹中的netbeans.conf文件,我在netbeans_default_options中添加了line-J-Dfile.encoding = UTF-8选项。 6 - )我的数据库中的表是编码UTF-8
通过调试我已经通过将对象保存在数据库中的方法进行了检查:
public void create(T entity)
{
getEntityManager().persist(entity);
}
没有String的问题,即重音是可以的。问题从现在开始发生,我无法再调试......
我在管理面板上编辑了连接池的GlassFish设置,其属性为characterEncoding = UTF-8。
最后我将jdbc连接编辑为jdbc:mysql:// localhost:3306 / igreja?characterEncoding = utf8
我对这个bug很疯狂。请那里有人经历过这个吗?
我提前谢谢你了!
丹尼尔
答案 0 :(得分:0)
我来自墨西哥,所以我们使用ñ,而这个字符在其他国家/地区不起作用,所以我们所做的就是使用(char)+number
这样的东西:
(char)225 = á
(char)224 = à
(char)227 = ã
(char)231 = ç
也许可以帮到你
答案 1 :(得分:0)
我解决了这个问题..... 我下载了GlassFish的多语言版本(glassfish-3.1.2.2-unix-ml.sh)......
在jsf页面里我做到了:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</h:head>
<h:body>
<f:view encoding="UTF-8">
<h:form enctype="multipart/form-data;charset=UTF-8">
我希望这个解决方案可以帮助其他用户...
非常感谢大家!!!!