【发布时间】:2017-07-30 12:12:16
【问题描述】:
我无法让 UTF-8 在 Tomcat 中工作。我已经做了以下配置:
- 在我的 server.xml 上设置 URIEncoding="UTF-8"
- 在 catalina.bat 中导出 CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"
- 已配置 Spring CharacterEncodingFilter
- 在所有 html 文件中设置 UTF-8
- Maven sourceEncoding 构建 UTF-8
当我在浏览器或邮递员中调用我的 webapp url 时,我可以看到 Content-Type →text/html;charset=UTF-8。但是页面以错误的编码呈现。当我在 Tomcat 文件夹中打开部署的 webapp 时,html 文件也具有正确的编码。我真的不知道该怎么办。
我正在使用 Angular、Spring、Jersey、Spring Security 和 Tomcat。
谢谢。
【问题讨论】:
-
你怎么知道页面是用错误的编码呈现的?你在屏幕上看到了什么让你说是这样的?
-
因为我想要这个“EMPÓRIO”并返回这个“EMPÓRIO”
-
字符编码错误可能很难,因为错误可能在链中的任何位置。这段文字来自哪里?它是否以正确的编码从其源中读取?它是否以正确的编码写入网页?在编码可能被弄乱的地方有什么发生吗?
-
此文本来自一个 html 文件。是的,它是使用正确的编码从其源中读取的。不,它没有使用正确的编码编写。
-
正如 Jesper 指出的那样,您必须搜索整个链来检测错误。你如何读/写 html 文件?一种猜测:如果没有给出其他参数,InputStreamReader 和 OutputStreamWriter 使用默认编码。您还需要在此处设置 UTF-8。
标签: java angularjs spring tomcat utf-8