JSP小节(1)

(一).出现中文乱码的三种情况及解决方案

1.JSP页面显示时的中文乱码问题:

   解决方案->用charset指令指定中文字符集正常显示中文

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

2.JSP页面传递中文参数时的乱码问题:

  解决方案->将<%String c=request.getParamter("username");%>改为

                     <%String c=new String(request.getParamter("username").getBytes("iso-8859-1"),"gb2312");%>

  解释如下:首先要说明的是getBytes()是String的方法.

 public byte[] getBytes(Charset charset)

使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

此方法总是使用此字符集的默认替代 byte 数组替代错误输入和不可映射字符序列。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder 类。

再来看看String的构造函数:

public String(byte[] bytes,Charset charset)

通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。新 String 的长度是字符集的函数,因此可能不等于 byte 数组的长度。

此方法总是使用此字符集的默认替代字符串替代错误输入和不可映射字符序列。如果需要对解码过程进行更多控制,则应该使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的 byte
charset - 要用来解码 bytes charset

3.Servlet处理中文参数时的乱码问题:

  解决方案->在相应String username=request.getParamter("username");上如下代码:

  request.setCharacterEncoding("gb2312");

  request.setContentType("text/html;charset=gb2312");  //此句最关键

4.URL传递的中文参数的乱码问题:

  解决方案->同第二种问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值