Tomcat/Grails/Ubuntu网站无法呈现一些带有重音的大写字母
我的grails应用程序无法呈现一些带有重音的大写字母。字符“Á”和“Í”的编码不正确。即:单词“CARACTERÍSTICAS”打印为“CARACTER”�?斯蒂卡斯”。只有大写字母“A”和“I”才会出现这种情况。字母“O”印得很好,带有口音 在我的windows开发计算机上,一切都运行得很好,但是当我把应用程序放在ubuntu服务器上时,它失败了,所以我认为这与服务器有关 服务器运行Ubuntu 16.04.1 LTS和Tomcat 8。我已检查etc/default/tomcat是否包含:Tomcat/Grails/Ubuntu网站无法呈现一些带有重音的大写字母,ubuntu,tomcat,grails,encoding,Ubuntu,Tomcat,Grails,Encoding,我的grails应用程序无法呈现一些带有重音的大写字母。字符“Á”和“Í”的编码不正确。即:单词“CARACTERÍSTICAS”打印为“CARACTER”�?斯蒂卡斯”。只有大写字母“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"
File 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:
文本源是用于翻译的“资源文件”。用于打印
我已经没有主意了。任何帮助都将不胜感激。提前谢谢
编辑2-解决方案:
资源文件位于UFT-8中。一旦我把它改成ISO-8859-1,它就工作了。由于某些原因,资源文件默认为该格式。正如您在评论中所说(请将它们编辑到您的问题中),翻译后的资源会出现此问题,我假设您的资源是
语言.properties
文件,并通过ResourceBundle读取它们。这些属性文件应为ISO-8859-1编码,从Java标准开始。这很可能导致文件中出现\u
编码字符
检查JDK的
native2ascii
工具。这封信的来源是什么(代码、DB、GSP?)以及它们的输出方式是什么(GSP、JSON?)来源是“资源文件”,输出是GSPUsing要打印请编辑问题,这是关于消息来源的。你确定你使用的是正确的编码吗?它起作用了。资源文件位于UFT-8中。一旦我把它改成ISO-8859-1,翻译工作就完美了。谢谢,我仍然问自己,为什么它在我的计算机上工作(即使文件是UTF格式的),而不是在服务器上。一定有什么东西可以超越这种行为