java.net.URLEncoder、java.net.URLDecoder配套使用
2011年09月01日
主要因浏览器到服务器之间的一次编码导致中文在网络传输过程中产生错误。BS通讯的标准为ISO8859-1。直接传送中文肯定是不行。
为了避免这种错误,在BS转换之前之后我们先对内容进行包装(转换)。
例如:
[code="java"]URLEncoder.encode(caseName, "utf-8")
[code="java"]URLDecoder.decode(new String(caseName.getBytes("iso8859-1"),&q uot;utf-8"),"UTF-8");
在系统中一般都会使用filter进行转换,应尽可能减少编码解码,主要是GBK和utf-8在互转过程中存在如下问题:
如果中文字符串长度是奇数(已全部恢复),转换后可能后变成(已全部恢?)。
这里解决办法是,编码时直接变成对方需要的字符集。
例如:URLEncoder.encode(caseName,"GBK")
这样在对方就不用解码了。
2011年09月01日
主要因浏览器到服务器之间的一次编码导致中文在网络传输过程中产生错误。BS通讯的标准为ISO8859-1。直接传送中文肯定是不行。
为了避免这种错误,在BS转换之前之后我们先对内容进行包装(转换)。
例如:
[code="java"]URLEncoder.encode(caseName, "utf-8")
[code="java"]URLDecoder.decode(new String(caseName.getBytes("iso8859-1"),&q uot;utf-8"),"UTF-8");
在系统中一般都会使用filter进行转换,应尽可能减少编码解码,主要是GBK和utf-8在互转过程中存在如下问题:
如果中文字符串长度是奇数(已全部恢复),转换后可能后变成(已全部恢?)。
这里解决办法是,编码时直接变成对方需要的字符集。
例如:URLEncoder.encode(caseName,"GBK")
这样在对方就不用解码了。
本文探讨了在浏览器到服务器通讯中,通过使用java.net.URLEncoder和java.net.URLDecoder进行编码和解码来避免中文在网络传输过程中的错误。重点解决了在GBK和utf-8字符集转换中存在的问题,并提供了编码时直接转换为对方所需字符集的方法。
334

被折叠的 条评论
为什么被折叠?



