解决|问题
1.解决jsp页面中的中文问题:在每个jsp头都加上<%@ page contentType="text/html;charset=GBK" language="java" %>,有需要的话也可以再加上<html:html locale="true"></html:html>表示使用本地编码。
2.解决资源包中的中文问题jsp要调用资源包中的信息,我们需要这些信息是中文的,但是资源包中是不能直接写入中文的。否则会有乱码。
步骤:1) 先将资源包的信息写成自己需要的中文信息,保存成ApplicationResources_zh.properties 2) 运行cmd到资源包所在目录,运行jdk命令:native2ascii -encoding gb2312 ApplicationResources_zh.properties temp.txt 运行后会将编码转换成ascii,储存在temp.txt。复制temp.txt中的内容,用它覆盖ApplicationResources_zh.properties原来的内 容。 3) 不需要更改struts-config.xml中的资源包设置,它会根据浏览器的设置判断,选择相应的资源包。比如在IE的工具-INTERNET选项- 语言,选择你需要的语言。你可以选择多种语言,但系统会根据先后关系选择资源包。如果把中文放在前面,系统就会使用ApplicationResources_zh.properties的资源包。 3.解决页面数据传输的中文问题jsp中将中文传给bean,再由bean传给jsp,在页面显示出来是乱码。在WEB.XML中加入字体类,内容如下:<!--SET CHARACTOR ENCODING--><filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>这里使用到一个字体类,SetCharacterEncodingFilter,在jsp-examples中可以找到,也可以参照里面的例子。你可以将那里的filters文件拷贝到你的classes下面。这里需要注意的是 <url-pattern>的内容,很多网页里把这里写成action。但是若这样写的话,是找不到项目的。所以,我把它写成*.do。如果是简单的javabean,则可以写成/*。
4. get方式的解决方法(struts不需要这个设置,只是附带说明而已)打开tomcat的server.xml文件,找到区块,加入如下一行:URIEncoding=”GBK”完整的应如下:
<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>