公告:如果您的账号不能登录,可能是系统对您账号进行了保护,我们发现系统中存在着不安全密码,故对其重置,请您重新激活账号,对于给您造成的不便,敬请谅解!
论坛风格切换切换到宽版
  • 35168阅读
  • 12回复

UTF-8 用户注册中文检测乱码解决方法。 [复制链接]

上一主题 下一主题
离线haha123_0
 
发帖
622
贡献值
14
威望值
775
技术分
0
织梦币
0
只看楼主 倒序阅读 使用道具 0 发表于: 2008-03-09
— 本帖被 dede 设置为精华(2008-04-01) —
原理:对传递 的新用户名进行编码和解码,解决中文校验显示乱码问题。

用js 进行编码,php进行解码。

js编码用到的函数为 escape,php解码的函数为网下的:) js_unescape

修改方法:

打开 member\templets\reg_new.htm
在13行处找到:
myajax.SendGet2("index_do.php?userid=" + document.form2.userid.value+"&fmdo=user&dopost=checkuser");
替换为:
myajax.SendGet2("index_do.php?userid=" + escape(document.form2.userid.value) +"&fmdo=user&dopost=checkuser");

打开 member\index_do.php
在最末尾找到
?>

在期上一行加入解码的函数:

function js_unescape($str)
{
        $ret = '';
        $len = strlen($str);

        for ($i = 0; $i < $len; $i++)
        {
                if ($str[$i] == '%' && $str[$i+1] == 'u')
                {
                        $val = hexdec(substr($str, $i+2, 4));

                        if ($val < 0x7f) $ret .= chr($val);
                        else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));
                        else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));

                        $i += 5;
                }
                else if ($str[$i] == '%')
                {
                        $ret .= urldecode(substr($str, $i, 3));
                        $i += 2;
                }
                else $ret .= $str[$i];
        }
        return $ret;
}

在23行处找到:
$userid = trim($userid);
替换成
$userid = js_unescape(trim($userid));

完毕!
[ 此贴被haha123_0在2008-03-09 00:30重新编辑 ]
1条评分
rinipp 威望 +10 优秀文章 2008-03-09
离线kesin

发帖
25
贡献值
8
威望值
13
技术分
0
织梦币
0
只看该作者 1 发表于: 2008-03-10
老大,又见你了。
这个方法很好用。
顶你。
 
离线airzen
发帖
43
贡献值
0
威望值
32
技术分
0
织梦币
0
只看该作者 2 发表于: 2008-03-10
查收了..
 
离线xware

发帖
396
贡献值
-1336
威望值
-13
技术分
0
织梦币
0
只看该作者 3 发表于: 2008-03-10
学习了 !
~I'm from Taiwan.~
离线iuip
发帖
149
贡献值
5
威望值
98
技术分
0
织梦币
0
只看该作者 4 发表于: 2008-03-11
急切需要 UTF-8问题太多
但是我的数据库编码有一定的日语 没有办法
痛苦中
只能够用utdf-8
离线haha123_0
发帖
622
贡献值
14
威望值
775
技术分
0
织梦币
0
只看该作者 5 发表于: 2008-03-13
引用第4楼iuip于2008-03-11 14:51发表的  :
急切需要 UTF-8问题太多
但是我的数据库编码有一定的日语 没有办法
痛苦中
只能够用utdf-8


不知道都有什么问题多,我装了,文章,问答,分类都没问题啊。
离线signer

发帖
32
贡献值
12
威望值
68
技术分
0
织梦币
0
只看该作者 6 发表于: 2008-03-22
思路很明确,顶,用了
离线taxuerb

发帖
1208
贡献值
2
威望值
710
技术分
0
织梦币
0
只看该作者 7 发表于: 2008-03-24
想死你了~!!!utf8的毛病确实太多
谢谢楼主解决,顶~~~~~~~~~~~
离线heavensn

发帖
92
贡献值
18
威望值
55
技术分
0
织梦币
0
只看该作者 8 发表于: 2008-04-01
谢谢了`搜索页下面的翻页也出现乱码`希望LZ也解决掉`
离线vicmiao
发帖
13
贡献值
0
威望值
9
技术分
0
织梦币
0
只看该作者 9 发表于: 2008-04-28
这个问题为什么不新版本中解决?