在利用ajax检测某个用户名是否存在时,如果只是一般的字母或数字字符,escape是够用的~
xmlhttp.open("get","Check_user.jsp?n="+escape(username));
但是如果遇到是中文字符时,如用户名为"小晓",那么
xmlhttp.open("get","Check_user.jsp?n="+escape(username));
则可能会出现if(xmlhttp.status==200)连接检测失败,即xmlhttp.status不为200;
或者出现获取意外值(结果与理想中的不一致);
解决方法:
xmlhttp.open("get","getuserinf.jsp?name="+encodeURIComponent(name),false);
encodeURIComponent会将中文字符转换成UTF-8编码,而UTF-8对中文支持比较好,我们在检测端再用:
String cname=request.getParameter("cname");
cname= new String(cname.getBytes("iso-8859-1"),"UTF-8");
就OK了~
xmlhttp.open("get","Check_user.jsp?n="+escape(username));
但是如果遇到是中文字符时,如用户名为"小晓",那么
xmlhttp.open("get","Check_user.jsp?n="+escape(username));
则可能会出现if(xmlhttp.status==200)连接检测失败,即xmlhttp.status不为200;
或者出现获取意外值(结果与理想中的不一致);
解决方法:
xmlhttp.open("get","getuserinf.jsp?name="+encodeURIComponent(name),false);
encodeURIComponent会将中文字符转换成UTF-8编码,而UTF-8对中文支持比较好,我们在检测端再用:
String cname=request.getParameter("cname");
cname= new String(cname.getBytes("iso-8859-1"),"UTF-8");
就OK了~
本文介绍如何在使用AJAX进行用户名检测时处理中文字符的问题。通过对比使用escape与encodeURIComponent的区别,阐述了如何确保中文字符能正确传递并被解析。
395

被折叠的 条评论
为什么被折叠?



