我有一个 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"
到应用程序中的所有表单之外,还有其他解决方案吗?
谢谢。