Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[经验] 关于农场有人正常,有人无线初始化,有人好友超时解决办法与说明

[复制链接]
liuzhly 发表于 2009-12-5 18:03:09 | 显示全部楼层 |阅读模式
本帖最后由 liuzhly 于 2009-12-20 19:40 编辑

查了一下午,终于找到原因,原来是农场编码问题,如有相同情况,请使用如下解决办法:

测试方法,修改自己的名字为:“ˇ輫ㄊ徊ヘ”然后进入农场试试...

方法1或者2任选一种即可解决~~如果自己名字是GB2312或者英文,出现无限初始化,那么不是编码的缘故~~
1、修改自己的名字为GB2312或者英文  
2、替换3个函数即可解决:
function unicode_encode($str){
        $str = iconv('UTF-8', 'UCS-2BE//IGNORE', $str);
        $len = strlen($str);
        $newstr = '';
        for($i = 0; $i < $len - 1; $i = $i + 2){
                $c = $str[$i];
                $c2 = $str[$i+1];
                if (ord($c) > 0){
                        //tow byte
                        $s = base_convert(ord($c), 10, 16);
                        if(hexdec($s) > 0xF){
                                $newstr .='\\u'.$s;
                        }else{
                                $newstr .='\\u'.'0'.$s;
                        }
                        $s = base_convert(ord($c2), 10, 16);
                        if(hexdec($s) > 0xF){
                                $newstr .=$s;
                        }else{
                                $newstr .='0'.$s;
                        }
                }elseif(ord($c2)<127){
                        $newstr .= $c2;
                }
        }
        return $newstr;
}

function unicode_encodegb($str){
        $str = iconv('GBK', 'UCS-2BE//IGNORE', $str);
        $len = strlen($str);
        $newstr = '';
        for($i = 0; $i < $len - 1; $i = $i + 2){
                $c = $str[$i];
                $c2 = $str[$i+1];
                if (ord($c) > 0){
                        $s = base_convert(ord($c), 10, 16);
                        if(hexdec($s) > 0xF){
                                $newstr .='\\u'.$s;
                        }else{
                                $newstr .='\\u'.'0'.$s;
                        }
                        $s = base_convert(ord($c2), 10, 16);
                        if(hexdec($s) > 0xF){
                                $newstr .=$s;
                        }else{
                                $newstr .='0'.$s;
                        }
                }elseif(ord($c2)<127){
                        $newstr .= $c2;
                }
        }
        return $newstr;
}

function unicode_encodebig5($str){
        $str =iconv('big5', 'UCS-2BE//IGNORE', $str);
        $len = strlen($str);
        $newstr = '';
        for($i = 0; $i < $len - 1; $i = $i + 2){
                $c = $str[$i];
                $c2 = $str[$i+1];
                if (ord($c) > 0){
                        //tow byte
                        $s = base_convert(ord($c), 10, 16);
                        if(hexdec($s) > 0xF){
                                $newstr .='\\u'.$s;
                        }else{
                                $newstr .='\\u'.'0'.$s;
                        }
                        $s = base_convert(ord($c2), 10, 16);
                        if(hexdec($s) > 0xF){
                                $newstr .=$s;
                        }else{
                                $newstr .='0'.$s;
                        }
                }elseif(ord($c2)<127){
                        $newstr .= $c2;
                }
        }
        return $newstr;
}
回复

使用道具 举报

mhw188 发表于 2009-12-5 18:17:39 | 显示全部楼层
不是很明白???
回复

使用道具 举报

品清湖 发表于 2009-12-5 18:21:11 | 显示全部楼层
好! 楼主这种分享的精神..要学习....
回复

使用道具 举报

品清湖 发表于 2009-12-5 18:23:08 | 显示全部楼层
回复 2# mhw188


    大意就在红色字部分,仔细看,看不懂?再看,多看,看多几遍
回复

使用道具 举报

dadie 发表于 2009-12-5 18:33:52 | 显示全部楼层
试看看,感谢
回复

使用道具 举报

 楼主| liuzhly 发表于 2009-12-6 00:01:13 | 显示全部楼层
打开文件 newfarmjson.php,找到这三个函数,替换就可以了!
回复

使用道具 举报

Imabird 发表于 2009-12-10 16:39:47 | 显示全部楼层
((em:12)) .
回复

使用道具 举报

纽币 发表于 2009-12-10 16:53:29 | 显示全部楼层
顶,研究代码的人
回复

使用道具 举报

bt222 发表于 2009-12-10 22:37:45 | 显示全部楼层
支持~~~!!!
回复

使用道具 举报

lh520zxh 发表于 2009-12-11 16:33:35 | 显示全部楼层
我的没有这个PHP
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-17 05:01 , Processed in 0.118227 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表