作为 WAR 部署或在 Tomcat 下运行时出现 UTF-8 问题

发布于 2024-12-02 00:32:57 字数 532 浏览 1 评论 0原文

在我的 grails 应用程序中,当我在 Tomcat 下运行时,UTF-8 处理被搞砸了。当我运行应用程序时,以下请求字符串:

utf-8-demo-%C3%BC%C4%81%D1%84.txt 设置为 utf-8-demo -üāф.txt,为所有后续请求的字符串中的每个 unicode 字符发送回 3 个 unicode 转义序列。

在 tomcat 下,它返回为 utf-8-demo-ü.txtutf-8-demo-\u00C3\u00BC\u00C4\u0081\u00D1\u0084.txt.

在我的一个控制器中,我有这样的情况:

String s = params.file
log.info( "Filename: $s" )//works in run-app, fails under tomcat

什么可能导致运行应用程序和在 tomcat 下部署为战争之间的这种行为二分法?

In my grails application, UTF-8 handling is screwed up when I run under Tomcat as a war. When I do run app, the following request string of:

utf-8-demo-%C3%BC%C4%81%D1%84.txt is set to utf-8-demo-üāф.txt, with 3 unicode escape sequences sent back for each of the unicode characters in the string for all subsequent requests.

Under tomcat, this comes back as utf-8-demo-üÄÑ.txt, or utf-8-demo-\u00C3\u00BC\u00C4\u0081\u00D1\u0084.txt.

In one of my controllers, I have this:

String s = params.file
log.info( "Filename: $s" )//works in run-app, fails under tomcat

What could POSSIBLY be causing this behavior dichotomy between run-app and deploying as a war under tomcat?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨与橙与城 2024-12-09 00:32:57

server.xml 中的 定义中添加属性 URIEncoding="UTF-8"

Add the attribute URIEncoding="UTF-8" on the <Connector> definition in server.xml.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文