0

虽然这个主题是反复出现的,而且尽管我用了两天时间试图解决这个问题,但到目前为止还是失败了。

我有一个使用 GlassFish 3.1.2、JSF2.0、EJB3.0 和 MySQL 在 NetBeans 7.3 中创建的 Web 项目

我在项目开始时遇到了如下问题:当我在 inputText 上输入带有 á、à、ã、ç 等的单词时,该单词与数据库中的奇怪字符一起存储。我为解决问题所做的工作:

1 -) 我将项目编码为 UTF-8。右键单击项目>属性>编码= UTF-8。2 -) 编译选项编码 = 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);  
}

字符串没有问题,即重音是可以的。从现在开始出现问题,我无法再调试...

我使用属性 characterEncoding = UTF-8 在管理面板上编辑了 GlassFish 的连接池设置。

最后我将 jdbc 连接编辑为 jdbc:mysql://localhost:3306/igreja?characterEncoding=utf8

我对这个错误快要疯了。请问有没有人经历过这个?

我提前谢谢你!

丹尼尔

4

2 回答 2

0

我来自墨西哥,所以我们使用ñ并且这个字符在其他国家/地区不起作用,所以我们要做的是使用这样的(char)+number东西:

(char)225 = á
(char)224 = à
(char)227 = ã
(char)231 = ç

也许可以帮助你

于 2013-08-27T16:53:36.260 回答
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">  

我希望这个解决方案可以帮助其他用户......

非常感谢各位!!!!

于 2013-08-30T14:34:00.903 回答