ajax提交中文编码问题(同时给出几个js与php编码方式)
2008-04-17 10:27
603 查看
在注册页面用ajax判断用户名是否重复时,如果输入为中文就会出现问题:
解决的办法:
统已有函数:
encodeURI javascript函数 编码要ajax传值的变量
urldecode php函数 解码url编码
urlencode php函数 同javascript函数 encodeURI
问题解决办法: 在js提交端 encodeURI
如:
以下是js代码:
pid = $('province').value; //使用了prototype框架
cid = $('city').value;
zid = $('zone').value;
hname = $('xiaoqu_name').value;
hname = encodeURI(hname); //注意这里
在接收端:
如:以下是php代码:
$hname = urldecode('远洋');
这样两端都解决了
另外给出两个js函数备用:
function UrlEncode(str)
{
var ret="";
var strSpecial="!/"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++)
{
var chr = str.substring(i,i+1);
var c=str2asc(chr);
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
}else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}else{
ret+= chr;
}
}
return ret;
}
这两个函数用到一下 vbscript:
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
解决的办法:
统已有函数:
encodeURI javascript函数 编码要ajax传值的变量
urldecode php函数 解码url编码
urlencode php函数 同javascript函数 encodeURI
问题解决办法: 在js提交端 encodeURI
如:
以下是js代码:
pid = $('province').value; //使用了prototype框架
cid = $('city').value;
zid = $('zone').value;
hname = $('xiaoqu_name').value;
hname = encodeURI(hname); //注意这里
在接收端:
如:以下是php代码:
$hname = urldecode('远洋');
这样两端都解决了
另外给出两个js函数备用:
function UrlEncode(str)
{
var ret="";
var strSpecial="!/"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++)
{
var chr = str.substring(i,i+1);
var c=str2asc(chr);
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
}else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}else{
ret+= chr;
}
}
return ret;
}
这两个函数用到一下 vbscript:
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
相关文章推荐
- ajax提交中文编码问题(同时给出几个js与php编码方式)
- 已解决了ajax(源文件编码gb2312)发送+php接收(源文件编码gb2312)中文乱码问题(utf-8也通用)
- tomcat编码格式的设置/如何解决get()方式提交中文参数乱码的问题
- Struts2 与 js 处理Get方式提交的中文参数乱码问题
- 关于php与js传递cookie中文值编码问题
- url里含有中文参数,已get方式提交到接口,中文编码后有乱码问题的一种解决
- Struts2 与 js 处理Get方式提交的中文参数乱码问题
- js php 中文互相传输 编码问题
- js和php中中文编码\u的问题
- js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
- js,java实现escape()和unescape()函数解决以给方式提交中中文参数问题
- java中以post方式提交,中文编码&解码问题
- JSP解决ajax使用$.get()方式提交中文出现乱码问题
- 后台 与 js 处理Get方式提交的中文参数乱码问题
- [转]结合PHP实例谈谈如何解决jQuery.ajax提交GB2312或GBK编码中文乱码问题
- Struts2 与 js 处理Get方式提交的中文参数乱码问题
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- 解析php开发中的中文编码问题
- JS提交请求url中存在中文的问题的一个解决方案