首页 新闻 搜索 专区 学院

Ajax+PHP用户注册检测

0
[待解决问题]

环境:apach,mysql,php 
问题描述:不能实现中文名作为注册名进行注册检查问题补充:js识别一个汉字为1个字节,php识别一个汉字为3个字节(编码为gbk),怎样实现用户名汉字字节长度的检测为一个汉字2个字节,并且实现可以用中文名注册。

谢谢诶各位高手指教!

玫瑰埃斯库的主页 玫瑰埃斯库 | 初学一级 | 园豆:200
提问于:2011-09-01 20:36
< >
分享
所有回答(1)
0

汉字在PHP中的UTF-8或者GB2312编码下用str_len()函数会返回3

利用采用UTF-8编码下利用mb_strlen()函数一个汉字将返回3,

采用gb2312编码利用mb_strlen()函数一个汉字将返回2

郭文华 | 园豆:252 (菜鸟二级) | 2011-09-02 15:36

就是呀,要怎么才能让一个汉字为2个字节呢,还有需要通过js验证,而js验证一个汉字为一个字节,怎么才能统一起来呢。。。。

支持(0) 反对(0) 玫瑰埃斯库 | 园豆:200 (初学一级) | 2011-09-03 00:50

首先确保编码是gbk,在js中你可以这样判定

View Code
<script>
alert (fucCheckLength(
"中国aaaa"));
function fucCheckLength(strTemp)
{
var i,sum;
sum
=0;
for(i=0;i<strTemp.length;i++)
{
if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
sum
=sum+1;
else
sum
=sum+2;
}
return sum;
}
</script>

php判断就用上面我说的

支持(0) 反对(0) 郭文华 | 园豆:252 (菜鸟二级) | 2011-09-03 16:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册