为什么js url传的中文乱码

JavaScript023

为什么js url传的中文乱码,第1张

浏览器和服务器之间的编码格式是不同的,

要解决乱码问题有三种办法

如果是get请求,可以在tomcat根文件下找到一个server.xml文件

在其第65行后加上URIEncoding="UTF-8"

如果是post请求,可以通过request设置实体内容的解码方式为UTF-8

如:req.setCharacterEncoding("UTF-8")

如果希望get和post都可以,可以在servlet接收乱码String时,使用iso8859-1将其还原成byte再采用UTF-8将此byte转成String

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开始计算