Google App Engine 上的瑞典语字符编码错误
Posted
技术标签:
【中文标题】Google App Engine 上的瑞典语字符编码错误【英文标题】:Swedish characters encoded wrong on Google App Engine 【发布时间】:2011-11-05 11:48:46 【问题描述】:一个非常基本的问题,我很尴尬,我自己还没有弄清楚。
当我在托管在 Google App Engine 上的 Spring Web 应用程序中处理发布在我的 html 表单上的字符串时,我应该怎么做才能保持正确的编码?
先决条件:我有一个尝试过以下编码的页面:
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
当有人在页面上发布带有例如瑞典字符 åäö 的表单时,当我查看发布的字符串(在调试器中或部署服务器上的持久字符串中)时,我的 servlet 代码中会出现问号。 (这似乎是一个转义序列,因为我的瑞典字母后面的字母也被删除了。
我应该更改页面上的编码还是以某种方式更改 GAE servlet 的编码?
【问题讨论】:
和西班牙语一样 ñ,你在使用@ResponseBody btw 吗? 不,如果我没记错的话,那个应用程序没有使用 Spring MVC。 【参考方案1】:我正在使用 servlet 过滤器,它强制编码为 UTF-8:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我不确定它是否需要,它只是来自我的 GAE 项目(以及任何其他基于 Spring 的项目)的模板,我的意思是没有这个过滤器我没有尝试过。但是有了它,它工作正常,完全没有编码问题。
当然,我总是在页面上使用 UTF-8
【讨论】:
您的过滤器仅使用 UTF-8 修复了它。非常感谢! 我也为此写了一篇博文,macgyverdev.blogspot.com/2011/09/…以上是关于Google App Engine 上的瑞典语字符编码错误的主要内容,如果未能解决你的问题,请参考以下文章
Google-App-Engine 上的 Grails - 它死了吗? [关闭]
Google App Engine 上的 Production App 突然无法访问 Google Cloud Storage
Google Apps 域上的 Google App Engine