Tomcat / Grails / Ubuntu 网站无法呈现一些带重音的大写字母
Tomcat / Grails / Ubuntu website fails to render some capital letters with accent
我的 grails 应用程序无法呈现某些带有重音符号的大写字母。字符“Á”和“Í”编码不正确。即:单词 "CARACTERÍSTICAS" 打印为 "CARACTER�?STICAS"。这只发生在大写字母 'A' 和 'I' 上。字母 'O' 打印得很好,带有重音符号。
在我的 windows 开发计算机上一切正常 运行,但是当我将应用程序放在 ubuntu 服务器上时它失败了,所以我认为这是服务器相关的。
服务器运行 Ubuntu 16.04.1 LTS 和 Tomcat 8。我检查过 etc/default/tomcat 包含:
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
文件application.yml 将编码设置为 UFT-8
grails:
converters:
encoding: UTF-8
我还检查了 config.xml 处的连接器,将 URIEncoding 设置为 UTF-8:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
项目资源文件也是UTF-8编码的
最后,我所有的 gsp 文件都包含以下行:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
编辑 1:
文本来源是 "resource files" 用于 t运行slation。用于打印。
我 运行 没主意了。任何帮助将不胜感激。提前致谢
编辑 2 - 解决方案:
资源文件位于 UFT-8 中。一旦我将其更改为 ISO-8859-1,它就起作用了。出于某种原因,资源文件默认采用该格式。
正如您在评论中所说(请将它们编辑到您的问题中)这个问题出现在翻译的资源中,我假设您的资源在 Language.properties
文件中,并阅读它们通过 ResourceBundle。根据 Java 标准,这些属性文件应采用 ISO-8859-1 编码。这很可能导致文件中出现 \u
个编码字符。
检查 JDK 中的 native2ascii
工具。
我的 grails 应用程序无法呈现某些带有重音符号的大写字母。字符“Á”和“Í”编码不正确。即:单词 "CARACTERÍSTICAS" 打印为 "CARACTER�?STICAS"。这只发生在大写字母 'A' 和 'I' 上。字母 'O' 打印得很好,带有重音符号。
在我的 windows 开发计算机上一切正常 运行,但是当我将应用程序放在 ubuntu 服务器上时它失败了,所以我认为这是服务器相关的。
服务器运行 Ubuntu 16.04.1 LTS 和 Tomcat 8。我检查过 etc/default/tomcat 包含:
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
文件application.yml 将编码设置为 UFT-8
grails:
converters:
encoding: UTF-8
我还检查了 config.xml 处的连接器,将 URIEncoding 设置为 UTF-8:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
项目资源文件也是UTF-8编码的
最后,我所有的 gsp 文件都包含以下行:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
编辑 1: 文本来源是 "resource files" 用于 t运行slation。用于打印。
我 运行 没主意了。任何帮助将不胜感激。提前致谢
编辑 2 - 解决方案: 资源文件位于 UFT-8 中。一旦我将其更改为 ISO-8859-1,它就起作用了。出于某种原因,资源文件默认采用该格式。
正如您在评论中所说(请将它们编辑到您的问题中)这个问题出现在翻译的资源中,我假设您的资源在 Language.properties
文件中,并阅读它们通过 ResourceBundle。根据 Java 标准,这些属性文件应采用 ISO-8859-1 编码。这很可能导致文件中出现 \u
个编码字符。
检查 JDK 中的 native2ascii
工具。