Web应用的中文本地化

当数据流的源与目的地使用不同的字符编码时,就需要对字符编码进行正确的转换:

1. 处理HTTP请求数据编码

  默认情况下,IE浏览器发送请求时采用“ISO-8859-1”字符编码,如果Web应用程序要正确读取用户发送的中文数据,则需要进行编码转换。

  一种方法是在处理请求前,先设置HttpServletRequest对象的字符编码:

        request.setCharacterEncoding("gb2312");

       另一种方法是对用户输入的请求数据进行编码转换:

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

      if(clientData != null)

            clientData = new String(clientData.getBytes("ISO-8859-1"),"GB2312");

2. 处理数据库数据编码

    如果数据库系统的字符编码是“GB2312”,则可以直接读取数据库中的中文数据,无需要转换。如果数据库的字符编码为“ISO-8859-1”,则先对来自数据库的数据进行编码转换,然后才能使用。方法是

  new String(field.getBytes("ISO-8859-1"),"GB2312")

  这里field为数据库表的某个字段值

3. 处理XML配置文件编码

    如果在XML文件中包含中文,可以将XML文件的字符编码设为"GB2312",当Java程序加载和解析XML文件时无需再进行编码转换。即在XML文件中直接输写中文。

4.  处理响应结果的编码

   Servlet中:response.setContentType("text/html;charset=gb2312");

   JSP中:<%@ page contentType="text/html;charset=gb2312"%>

    HTML中:

       <head>

        <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=gb2312">

        </head>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值