java.net.URLEncoder、java.net.URLDecoder配套使用

本文主要探讨了浏览器到服务器间中文传输导致的乱码问题及其解决方案。通过使用URLEncoder.encode和URLDecoder.decode方法,并选择合适的字符集(如GBK或UTF-8),可以有效避免中文在传输过程中的乱码现象。
主要因浏览器到服务器之间的一次编码导致中文在网络传输过程中产生错误。BS通讯的标准为ISO8859-1。直接传送中文肯定是不行。


为了避免这种错误,在BS转换之前之后我们先对内容进行包装(转换)。


例如:


[code="java"]URLEncoder.encode(caseName,"utf-8")[/code]

[code="java"]URLDecoder.decode(new String(caseName.getBytes("iso8859-1"),"utf-8"),"UTF-8");[/code]


在系统中一般都会使用filter进行转换,应尽可能减少编码解码,主要是GBK和utf-8在互转过程中存在如下问题:

如果中文字符串长度是奇数(已全部恢复),转换后可能后变成(已全部恢�?)。

这里解决办法是,编码时直接变成对方需要的字符集。
例如:URLEncoder.encode(caseName,"GBK")
这样在对方就不用解码了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值