我有一个提交详细信息的表单,如姓名,地址,附属机构。这些输入将使用不同的语言,如法语,西班牙语,德语,俄语等。我指出这些输入有一段时间有非英语键盘字符,并提交为不同的字符,如&,^等。
例如,
这是输入
InstitutodeQuı'mica,Universidade de Sa ~o Paulo,Sa ~o Paulo, 巴西
这是我提交表单时保存在DataBase中的数据
Instituto de Qu?´mica, Universidade de Sa˜ o Paulo, Sa˜ o Paulo, Brazil
我已将字符集设置为数据库中的UTF-8,稍后在jsp页面中我发现struts 2表单具有标记属性acceptcharset="UTF-8"
它一直只用很少的其他语言,但不适用于西班牙语,葡萄牙语等等。 那么这个问题的解决方案是什么?
答案 0 :(得分:1)
我已修改此问题,方法是更改HTML页面中的pageEncoding
和charset
中的UTF-8,我会在form
中使用acceptcharset="UTF-8"
我最后得到的jdbc:mysql://localhost:3306/yourDB?useUnicode=true&characterEncoding=utf8
将它存储在数据库中的问题,即使它的字符集是字符集是UTF-8所以我通过在连接URL中提供{{1}}强制数据库连接使用UTF-8
答案 1 :(得分:0)
您可以使用Spring过滤器,并强制编码为UTF8。 将其添加到您的web.xml:
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
答案 2 :(得分:0)
如果您需要强制jsp为UTF-8,您可以在web.xml中编写以下内容:
<jsp-config>
<jsp-property-group >
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>