您现在的位置: 万盛学电脑网 >> 网络安全 >> 网络基础知识 >> 正文

encodeURI decodeURI 解决地址传参乱码问题

作者:佚名    责任编辑:admin    更新时间:2022-06-22

当以url的形式(url?param=...)传递参数时,如果传递的是日文,或中文字符串那么在接收的时候是乱码形式。

javascript:
encodeURI(value):将value转换成utf-8,
decodeURI(value):将utf-8的value反转成字符串。

java:
URLDecoder.decode(value, "utf-8");
URLEncoder.encode(value, "utf-8");

 -----------------------------------java端另一种解决方法--------------------------------------------

jsp页面上有一个文本框:
<input type="text" name="companyName" value='<%=request.getAttribute("companyName") %>'/>

当文本框内容是汉字或者日文的时候,servlet中获得此文本框内容时是乱码:
request.getParameter("companyName");

解决:
String str = request.getParameter("companyName");

当文本框是中文时:
new String(str.getBytes("ISO-8859-1"), "GB2312");
当文本框是日文时:
new String(str.getBytes("ISO8859-1"), "UTF-8");

-------------------------------------------------------------------------------

ASCII:美国信息互换标准代码非ASCII编码:
GB2312:汉字编码标准
GBK:扩展了兼容GB2312
SJIS:日文编码标准

MS932:对于SJIS得扩展

Unicode:废除所有地区编码规范,提出统一编码原则

UTF-8:Unicode的实现方式之一

---------------------------------------以下转---------------------------------