玻璃鱼编码问题

6
我正在使用此示例中的代码,并将其放在Netbeans 6.8和Glassfish v3中的Web应用程序中的JavaBean中的runUpdate()函数中。但是,表格中出现了问号,这似乎是一个编码问题。
我已经尝试过以下方法:
  1. 在nbproject->private->private.properties中添加runtime.encoding=UTF-8>
  2. 在项目->属性->源代码->编码中选择UTF-8
  3. 在program files->netbeans->etc->netbeans_conf中,在netbeans_default_options中添加-J-DFile.encoding=UTF-8
  4. 在项目->属性->构建->编译器->附加编译选项中添加-encoding utf-8
  5. 在sun-web.xml中添加:<locale-charset-info default-locale="UTF-8"> <locale-charset-map locale="" charset=""/> <parameter-encoding default-charset="UTF-8"/> </locale-charset-info>
当我在Glassfish输出面板中使用system.out.print()时,也会出现乱码。我已经快要疯了,请帮忙看看。
另外,在执行步骤5时,我遇到了Glassfish错误。
WARNING: WEB0500: default-locale attribute of locale-charset-info element is being ignored
3个回答

15

你试过使用glassfish-web.xml文件而不是sun-web.xml吗?

为了改变Glassfish的默认POST字段编码方式,我把以下内容添加到WEB-INF/glassfish-web.xml文件中,这样做起作用了(我使用的是Glassfish 3.1.2):

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD
GlassFish Application Server 3.1 Servlet 3.0//EN"
"http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
    <parameter-encoding default-charset="UTF-8" />
</glassfish-web-app>

我不确定它是否会帮助你,但可能会帮助其他遇到与我相同问题的人。


6

-1

您确定您的浏览器设置为UTF-8吗?默认情况下,大多数浏览器不会以UTF格式显示。从浏览器开始向后排查。您的数据源是否以UTF-8存储数据?默认情况下,Java是以UTF-8编码的,因此我不确定GF是否是您真正遇到的问题。


谢谢您的回答。 我使用示例代码在融合表中输入数据。 请查看以下链接: http://tables.googlelabs.com/DataSource?dsrcid=136056 如果我使用它们的ui,一切正常(表中除最后一个条目外的所有条目),但如果我使用api,则获取到的是损坏的最后一个条目。是的,我的浏览器采用utf-8编码。而且所有的源都有utf-8编码。 - Argiropoulos Stavros
很奇怪 - 我真的很讨厌使用不同的编码方式。如果您删除最后一行,新的最后一行会出现问题吗?如果没有,那么也许您的最后一行并不是UTF-8编码的。 - TheSteve0
默认情况下,如果页面未定义编码方式,所有现代浏览器都使用UTF-8作为默认编码方式。我现在遇到了由Glassfish引起的编码问题,但是在Tomcat中没有问题,在Glassfish中出现了问题。 - Al-Mothafar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接