Java中解决中文乱码问题的一种方法

第一种:请求数据与页面编码不一致

中文乱码的原因:

请求参数的文字编码方式与页面中的不一致所造成,所有的request请求都是ISO-8859-1的,而如果在此页面采用UTF-8的编码方式,就需要将获取到的数据通过String的构造方法使用指定的编码类型重新构造一个String对象,即可正确地显示中文信息。

例如:

<body>

<a href=show.jsp?name=张三&sex=男>解决中文乱码</a>

</body>

则:

<body>

<!采用了中文乱码处理-->

name参数的值为:<%=new String(request.getParameter(name).

getBytes(ISO-8859-1),UTF-8)%>

<!未采用了中文乱码处理-->

sex的参数为:<%=request.getParameter(sex)%>

</body>

 

 

 

 

第二种 请求的数据经过Web容器处理

乱码来源:Web容器使用的是ISO-8859-1的编码格式,所以在Web应用的业务处理中也会使用ISO-8859-1的编码格式。因此虽然浏览器提交的请求使用的是中文编码格式UTF-8,但经过业务处理中的ISO-8859-1编码,仍然会出现中文乱码现象。

解决方法:字符编码过滤器(即在业务处理中重新指定中文字符集进行编码)

例如:

request.setCharacterEncoding(encoding);   //设置请求的编码

response.setContentType(text/html;charset=+encoding);    //设置response字符编码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值