url传参数出现中文乱码,怎么解决?

JavaScript08

url传参数出现中文乱码,怎么解决?,第1张

一般出现乱码都是在js_面跳转到哪个类 然後得到这个参数的时候中文乱码,\x0d\x0a有一个非常实用的办法,在js你可以这样写:\x0d\x0avar url=........\x0d\x0aurl=encodeURI(url)\x0d\x0aurl=encodeURI(url)//最重要的部分,两次调用encodeURI ,就是编码两次\x0d\x0a然後在跳转到url所在的类, 获取这个参数的方法如下:\x0d\x0aString name=request.getParameter("name")\x0d\x0aname=URLDecoder.decode(name,"utf8")\x0d\x0a这样就能解决乱码问题了,这种方法还没遇到过不能解决的乱码,

GBK与UTF-8的转码:

iconv("gbk","utf-8","php中文转码")//把中文gbk编码转为utf8

iconv("utf-8","gbk","php中文转码")//把中文utf8编码转为gbk

一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码:

1.传参页面

Javascript代码:<script type=”text/javascript”>// <![CDATA[

function send(){

var url = "test01.html"

var userName = $("#userName").html()

window.open(encodeURI(url + "?userName=" + userName))}

// ]]>

</script>

2. 接收参数页面:test02.html

<script>

var urlinfo = window.location.href//获取url

var userName = urlinfo.split(“?”)[1].split(“=”)[1]//拆分url得到”=”後面的参数

$(“#userName”).html(decodeURI(userName))

</script>

二:如何获取Url“?”后,“=”的参数值:

A.首先用window.location.href获取到全部url值。

B.用split截取“?”后的全部

C.split(“?”)后面的[1]内数字,默认从0开始计算

在页面中对URL进行编码,最好不要在URL中传递中文参数否则会出现乱码

1.在页面中对你的URL进行编码

使用------encodeURI(你要使用的中文参数值)如:...?username"+encodeURI(“小甜甜")

2.在后台通过解码来接收该中文参数

使用----String name = new String(request.getParameter("username ").getBytes("iso8859-1"),"utf-8")

3.最好不要在URL中传递中文参数