【发布时间】:2012-06-01 19:49:03
【问题描述】:
我有一个 Grails 应用程序,它在各处都配置为 UTF-8。在运行调试版本时,标头说Content-Type:text/html;charset=utf-8,并且元标记同意。浏览器将页面识别为 UTF-8 并正确显示字符。
发布表单时,浏览器会正确地发送以 UTF-8 编码的表单。但是,当通过params.paramname 读取数据时,数据看起来是乱码; maçã 变为 maçã。
经过进一步检查,该表单似乎正在发送 UTF-8 数据,但 Grails 似乎尝试将其读取为 ISO-8859-1。在表单上设置accept-charset="ISO-8859-1" 可以确认这个问题,因为它可以解决问题。
我在 applicationContext.xml 上也有这个:
<bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter">
<property name="encoding">
<value>utf-8</value>
</property>
<property name="forceEncoding">
<value>true</value>
</property>
</bean>
除了将accept-charset="ISO-8859-1"添加到应用程序中的所有表单之外,还有其他解决方案吗?
谢谢。
【问题讨论】:
标签: forms grails encoding utf-8