ajax中的中文乱码摘要

电脑杂谈  发布时间:2020-05-15 14:02:17  来源:网络整理

ajax参数乱码_ajax 参数中文乱码_ajax 中文参数乱码

本章解决了AJAX中常见的中文问题,分析了中文乱码的原因以及如何解决乱码

1. HTTP协议编码规定

在HTTP协议中,浏览器无法直接将某些特殊字符传输到服务器. 这些字符在传输之前必须经过URL编码. URL编码规则:

将空格转换为(+)

0-9,a-z和A-Z之间的字符保持不变.

对于所有其他字符,请在内存中使用此字符当前字符集编码的十六进制格式,并在每个十六进制字节之前添加一个百分号. 例如,字符“ +”由%2B表示,字符“ =”由%3D表示,字符“&”由%26表示,字符“ national”由%B9%FA表示. 请注意,相同的汉字位于不同的字符集中. 在编码方法下,存储器中的编码值也不同. 字符的URL编码是针对存储器中字符的代码值,而相同字符的URL编码结果不同.

2. encodeURI()和encodeURIComponent()函数

javaScript中提供了两个函数来对字符进行编码: encodeURI()和encodeURIComponent(). 两者之间的区别在于encodeURI函数不会处理以下字符: “!@#$&*()=: / ;? +'”,而encodeURIComponent函数将处理更多字符. 例如,URI组件“ /”将由encodeURIComponent处理. 这两种方法URL对传递的值进行编码. 该过程是首先找到对应于该字符的UTF-8编码. 例如,两个字符“ Zhang San”的UTF-8编码为“ 0xE5BCA0E4B889”(前面为零x,表示它是十六进制代码). “张”是“ 0xE5BCA0”,“三”是“ 0xE4B889”,那么转换后的结果将是

是“%E5%BC%A0%E4%B8%89”. 请注意,此转换结果与网页的编码无关,因为这两个函数始终获取与字符对应的UTF-8代码,然后获取URL编码. 也就是说,无论网页是GBK还是UTF-8,转换结果都是相同的.

因此,如果我们发送到服务器的请求包含中文或其他特殊字符,例如空格“ +”和其他符号,则我们需要两个函数供用户对字符进行URL编码.

3. 封装Ajax请求代码以供以后使用.

创建一个新的Web项目,在该Web项目中添加一个ajax.js文件,内容包含以下两个功能:

createXmlHttp()

function createXmlHttp(){

if(window.XMLHttpRequest){

//警报(“非IE浏览器”);

返回新的XMLHttpRequest();

}否则,如果(window.ActiveXObject &&!window.XMLHttpRequest){

var aVersion = [“ MSXML2.XMLHttp.6.0”,

“ MSXML2.XMLHttp.5.0”,“ MSXML2.XMLHttp.4.0”,

“ MSXML2.XMLHttp.3.0”,“ MSXML2.XMLHttp”,

“ Microsoft.XMLHttp”];

for(var i = 0; i

尝试{

var oXmlHttp =新的ActiveXObject(aVersion [i]);

//警报(“ IE浏览器版本” + aVersion [i]);

返回oXmlHttp;

}

捕获(例如){}

}

}

引发新错误(“创建XMLHttpRequest对象时出错!”);

}

doGet(url,callBack)函数,此函数有两个参数,将来发送AjAX GET请求时可以直接调用此方法. 第一个参数表示要发送的请求的URL地址,第二个参数是回调函数. 回调函数需要处理从服务器返回的数据.

/ **

* @param url请求的URL

ajax 参数中文乱码_ajax 中文参数乱码_ajax参数乱码

* @param callBack回调函数

* @return

* /

function doGet(url,callBack){

var request = createXmlHttp();

request.onreadystatechange =函数(){

if(request.readyState == 4 && request.status == 200){

//请注意,在定义回调函数时,我们需要再添加一个参数以接收返回的数据

callBack(request.responseText);

}

};

request.open(“ GET”,网址);

request.send(空);

}

4. 编写一个页面,该页面中使用的字符集采用UTF-8编码:

HTML部分:

验证用户名是否存在

输入用户名:

<输入类型=“按钮”值=“验证” />

JavaScript部分:

首先介绍ajax.js文件,然后编写单击按钮时要执行的代码:


热点图片
拼命载入中...