Web应用中的本地化

来源:互联网 发布:r语言分类数据计数 编辑:程序博客网 时间:2024/05/21 05:44

如果开发的Web应用只供中文用户使用的话,就无须考虑国际化问题。但实践证明,在Web应用的中文问题上经常碰到乱码的晴空。

下面列举了Web应用开发过程中常见的几个中文问题及其解决办法。

1、解决HTML页面中的中文问题

为了使HTMl页面很好的支持中文,就必须在每个HTMl页面的头部增加如下代码:

<HEAD>

...

<META http-equiv=Content-Type content="text/html;charset=gb2312">

 ...

</HEAD>

2、解决JSP页面中的中文问题

为了使JSP页面很好的支持中文,就必须在每个JSP页面的头部增加如下代码

<%@ page contentType="text/html;charset=gb2312" language="java"%>
3、解决Servlet响应结果的中文问题

response.setChracterEncoding("gb2312");
4、解决页面数据传输的中文问题

为了使中文数据在各页面(组件)之间正常传递,最佳的诶办法就是采用编码过滤器来解决。在WEB.xml中配置一个编码过滤器,内容如下:
<filter>
          <filter-name>encondingFilter</filter-name>
          <filter-class>org.springframework.web.filter.CharacterEncoding</filter-class>

         <init-param>
                   <param>encoding</param>

                    <param>gb2312</param>  

         </init-param>
 </filter>
<filter-mapping>
       <filter-name>encodingFilter</filter-name>
       <url-pattern>/*</url-pattern>

</filter-mapping>

5、解决HTTP(get)请求中的中文问题

String parameter = request.getParameter("parameter");

if(parameter!=null)
   parameter=new String(parametr.getBytes("ISO-8859-1"),"gb2312");如果我们在应用中请求参数很多的情况下,也可以通过Tomcat的Server.xml文件来解决。

 <Connector port="8080" protocol="HTTP/1.1"

                  connectionTimeout="20000"

                 redirectPort="8443"; useBodyEncodingForURI="true">

6、解决MySOL数据库中文问题

jdbc.mysql://localhost/test?user=root&password&useUnicode=true&characterEncoding=gb2312
7、今天在做将由word生成的html文件转成字符串时出现了编码问题,读取的时候使用BufferedRead输入流进行按行读取的,然后再转成字符时使用了字节编码。览器以HTTP头中指定的方式解码字符,这时无论是用GBK还是UTF-8解码,显示的都是乱码。  解决这个乱码问题方法是使用InputStreamReader来转换字符编码,如:
  BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\test.txt"),"utf-8"));