java - 无法在 glassfish 3.1 中将字符集从 ISO-8859-1 更改为 UTF-8

标签 java servlets utf-8 character-encoding glassfish

我在将 Web 应用程序响应中的字符集从 ISO-8859-1(默认)更改为 UTF-8 时遇到问题。我已经将 VM 选项 -Dfile.encoding=UTF-8 添加到 JVM 选项

但是,我确实从 glassfish 得到了以下 HTTP header 作为响应:

Content-Type: [...;charset=ISO-8859-1]
Server: [GlassFish Server Open Source Edition 3.1]

非常感谢您的帮助/想法。

最佳答案

-Dfile.encoding 是关于如何读取 Java 源文件的 Oracle JVM 特定设置。这对 HTTP 响应的 Content-Type header 中指定的字符集没有任何影响。

您需要将以下内容添加到您的 web.xml,以便将所有 JSP 的响应作为 UTF-8 发送,并让它在响应 header 中设置适当的字符集。

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

另见:

关于java - 无法在 glassfish 3.1 中将字符集从 ISO-8859-1 更改为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279504/

相关文章:

java - http 状态 404 – 在 Tomcat 服务器上的 jsp、servlet 中未找到

php - utf8 中的 'messed up characters' 列表

java - 检索 POJO 中的 firebase hashmap 数据

java - Mule - 使用 Maven 运行时项目构建失败

java - Spring Security - 无法注销

java - 尝试从 servlet 调用 JDBC 时抛出 NullPointerException

java - Apache Tomcat - 读取生成的旧文件

java - Ant:获取Java类名并写入属性文件

git - Git Diff 中的非 UTF8 字符(如 ESC[1;33m] )

java - 使用 FileOutputStream 创建 UTF-8 PDF 文件