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");


发表评论 取消回复

很抱歉,您暂时无法发布评论。需要 登录 后才能发布。