struts2表单接受多语言

时间:2012-07-27 06:45:45

标签: utf-8 struts2

我有一个提交详细信息的表单,如姓名,地址,附属机构。这些输入将使用不同的语言,如法语,西班牙语,德语,俄语等。我指出这些输入有一段时间有非英语键盘字符,并提交为不同的字符,如&,^等。

例如,

这是输入

  

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"

它一直只用很少的其他语言,但不适用于西班牙语,葡萄牙语等等。 那么这个问题的解决方案是什么?

3 个答案:

答案 0 :(得分:1)

我已修改此问题,方法是更改​​HTML页面中的pageEncodingcharset中的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>