struts2表单接受多语言



我有一个表格,可以提交姓名、地址、隶属关系等详细信息。在这里,这些输入将以不同的语言,如法语、西班牙语、德语、俄语等。我指出,这些输入有时具有非英语键盘字符,并以不同的字符提交,如&,^等等

例如

这是输入

圣保罗大学Quı´mica研究所,巴西

这是我提交表格时保存在数据库中的数据

Instituto de Qu?´mica, Universidade de Sa˜ o Paulo, Sa˜ o Paulo, Brazil

我已经在数据库中将字符集设置为UTF-8,后来在jsp页面中我发现struts 2表单有一个标记属性acceptcharset="UTF-8"

它只适用于其他几种语言,但不适用于西班牙语、葡萄牙语和更多语言。那么这个问题的解决方案是什么呢?

我已经通过在HTML页面的pageEncodingcharset中更改UTF-8解决了这个问题,在form中,我使用了acceptcharset="UTF-8",最后我在数据库中存储它时遇到了问题,即使它的字符集是UTF-8。所以我在连接url 中提供jdbc:mysql://localhost:3306/yourDB?useUnicode=true&characterEncoding=utf8,迫使数据库连接使用UTF-8。

您可以使用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>

如果需要强制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>

最新更新