url传值乱码问题解决
在开发过程中遇到的需要在url中传递参数的,对于一般的英文字母,数字来说不存在问题;但是如果传递是非英文字符的,比如:汉字、韩文、日文等,会出现乱码。
解决方案:
在你的开发环境、开发语言中,找到针对字符串或者URL进行编码的方法或者函数,对参数进行编码后传递,再在接收端解码即可解决。
具体方案:
DotNet版本:
//编码操作 HttpUtility.UrlEncode("要编码的中文参数",System.Text.Encoding.UTF8); //解码操作 HttpUtility.UrlDecode("要解码的字符串”,System.Text.Encoding.UTF8); //asp.net页面中的编码 Server.UrlEncode("要编码的参数"); //解码 Server.UrlDecode("要解码的参数");
JAVA版 - 方法一
//编码操作 java.net.URLEncoder.encode("xxxx","utf-8"); //解码操作 java.net.URLDncoder.decode("xxxxutf-8”)
JAVA版 - 方法二
/* 传参前:encodeURI(“xxxx”) 。 接收参数后:使用java.net.URLDncoder.decode(“xxxx”,“utf-8”)将16进制字符转为中文。 这种方式需要注意的是,在使用encodeURI转码后,会出现特殊字符,这时候, 就需要将特殊字符也转码,所以使用两次encodeURI */ //客户端: url=encodeURI(encodeURI(url)); //用了2次encodeURI //服务器: String linename = request.getParameter(name); //java 字符解码 linename = java.net.URLDecoder.decode(linename , "UTF-8");