请选择 进入手机版 | 继续访问电脑版

AKCMS 建站论坛

 找回密码
 注册
搜索
查看: 1067|回复: 4

akcms5.2.1gbk转utf-8全过程

[复制链接]

7

主题

0

好友

10

积分

新手上路

Rank: 1

金币
118
威望
10
积分
10
帖子
53
发表于 2013-12-12 16:46 |显示全部楼层
1、先用编码转换工具将htm文件全部转换成utf-8。
2、将数据库data/7OPXgl.db.php转换为unicode,可以用工具sqlitespy。
3、修改configs/config.inc.php将$charset改为$charset = 'utf8';
4、修改include/common.func.php中的ak_unserialize函数
function asc_unserialize($serial_str) {
    $serial_str = preg_replace('!s:(\d+):"(.*?)";!se', '"s:".strlen("$2").":\"$2\";"', $serial_str );
    $serial_str= str_replace("\r", "", $serial_str);      
    return unserialize($serial_str);
}
function mb_unserialize($serial_str) {
    $serial_str= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
    $serial_str= str_replace("\r", "", $serial_str);
    return unserialize($serial_str);
}
function ak_unserialize($str) {
        $return = mb_unserialize($str);
        if($return === false) {
                return '';
        } else {
                return $return;
        }
}


后台“编辑模式”还是乱码,其它都正常。

PS:让我找了好长时间弄这个问题,问题在于unserialize这个东西有问题。通常我喜欢json格式数据。PHP转一下就可以直接使用,JS也可以转一下直接使用。挺方便的。

48

主题

0

好友

0

积分

新手上路

Rank: 1

金币
800
威望
0
积分
0
帖子
349
发表于 2013-12-12 23:21 |显示全部楼层
辛苦你了
akcms仿站logo设计找我,Q:四23八2九15

7

主题

0

好友

10

积分

新手上路

Rank: 1

金币
118
威望
10
积分
10
帖子
53
发表于 2013-12-13 14:15 |显示全部楼层
我不知道为什么你的gbk可以完全搜索,但在我的PHP5.3.27上面是无法进行搜索的。而且我的utf-8编码的无论是在PHP5.2.17还是PHP5.3.27上面都正常运行。

7

主题

0

好友

10

积分

新手上路

Rank: 1

金币
118
威望
10
积分
10
帖子
53
发表于 2013-12-20 18:44 |显示全部楼层
对了,还要将configs\language\custom.php也转换成utf-8的,不然编辑模式下会乱码。

6

主题

0

好友

0

积分

新手上路

Rank: 1

金币
844
威望
0
积分
0
帖子
32
发表于 2016-8-27 03:29 |显示全部楼层
感谢楼主,修改common.func.php文件解决了我的问题~~~
您需要登录后才可以回帖 登录 | 注册

手机版|AKCMS官方站

GMT+8, 2017-9-20 06:37

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部