JAVA字符乱码问题的解决

在包含中文的字符中我们总是很容易碰到汉字转码的问题,针对不同的请求方式我总结了下面几个方法:

  1. POST表单提交和正常数据库非英文数字读取:这里通常是在读取数据前进行相关的转码---request.setCharEncoding("UTF-8"),而在输出的时候如果是在JSP页面就可以:,用response.setContentType("text/html;charset=UTF-8")同样适合,
  2. get表单提交和超连接中非英文数字:要注意的是,post和get虽然都是对表单而言的,然而他们的提交方式是不同的,get的方式到有点像超连接,是以查询字符串提交的,所以我们在接受页面来进行相关的解码和编码操作,比如我们传过来的乱码字符串是A,我们可以:  String B=new String(A.getBytes("ISO-8859-1"),"UTF-8")  的方式来将默认的ISO-8859-1编码方式读成字节数组,然后以UTF-8的编码方式编码,这样我们就可以看到正常的结果了。我们也可以将这样的编码写成一个静态的方法,方便我们调用.在我以前的一个项目中我发现中文写入到COOKIE然后读取容易报错,我当时是先用ISO-8859-1的编码存进的COOKIE,然后取出,编码成UTF-8.是不是这样做我也不是很肯定,当时没有仔细研究这个问题,不过这样写是一定没有问题的.
  3. 胡乱编码:我以前跟别人找BUG事发现过这样的问题:他JSP页面上是用的GB2312编码,而过滤器里面却是UTF-8 ...汗颜~~页面的编码方式一定要统一,我是很建议大家写到过滤器里面去的.这样会很方便.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值