discuz gbk php在utf8,UTF8怎么换成GBK - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...

Discuz!4.0及以上版本由UTF8转GBK的详细教程【告别乱码,拥抱插件】

经测试,此教程完全适用于Discuz4.0以上版本(包括Discuz4.0)!

谨以此文献给因UTF8编码不能使用插件、不能安装特效、经常出现乱码、rss不能正常显示、郁闷至极的朋友们。

Section I 盾与矛:为啥要转换?

有很大一部分朋友在选择安装Discuz并不知道安装什么编码版本才合适,这里我把对这两个编码的理解和大家分享

引用:

1、从数据库的尺寸上看,UTF8要大于GBK,20M的UTF8转成GBK后大概为16-17M

2、从论坛插件的支持上看,Discuz的拥戴者制作的插件基本上都是针对GBK的,UTF8的极少

3、从搜索引擎上看,MSN、YAHOO比较喜欢UTF8,会收录更快一些,因为它是国际上通用的编码,百度、google基本不受影响

4、从用户使用上看,UTF8更加适合欧洲、北美、香港用户通过FIREFOX等外国流行的浏览器浏览,GBK更适合大陆用户浏览

5、Discuz!官方推荐安装使用的是GBK

从上面可以看出,UTF8更适合外国朋友居多且不需太多要插件的论坛。GBK更适合普通一般的中国大陆用户。至于有些朋友说UTF8比GBK承载能力更佳,我使用了这么长时间,并没有感觉到有什么不同。

Section II 迷尘恋雾

转换过程貌似很复杂、很有难度,其实不然,出现错误的情况大多是由于人工失误、对MYSQL版本的不熟悉以及初次转换的懵懂、不感冒引起的,除了下面进行的详尽的分析之外,最后我还会列出一些常见失误和错误提示及解决方法,供大家对比参照。

Section III GBK也疯狂:插件我来了,乱码goodbye

引用:

手把手教您转换编码,请按下面的步骤step by step,祝您成功!

转换总共包括两个部分:数据库编码的转换和论坛文件的备份

一、关于数据库的备份和编码转换的过程

1、首先进入后台-数据库-资料备份

数据备份类型里选择 全部备份

数据备份方式里选择默认Discuz! 分卷备份 - 文件长度限制(kb)即可,包的大小自己设置

引用:

数据备份选项里(重要)

其他不要设置,主要看“ 建表语句格式”,这里有两个选项

※MySQL 3.23/4.0.x    ※MySQL 4.1.x/5.x

MySQL建表语言在4.0.x-4.1.x做了修改,所以这里[一定要注意正确的选择备份方式]

对于在原空间进行转换的朋友,这点可以忽略不计。

对于论坛搬家的朋友,Discuz! 提供了这样优秀的备份选项,一定要充分利用起来,在搬家前一定要检查新、旧服务器的MYSQL版本!

至于MySQL版本在新旧空间里在哪查看,其实很简单,在后台首页里就有,如下图:

2、提交,开始备份并完成备份。

3、利用ConvertZ工具对数据库编码进行转换

引用:

Step1. 下载附件中的文件 ConvertZ.part1-part2.rar,解压缩到任意文件夹(自己取)

Step2. 打开此附件,双击ConvertZ.EXE运行

Step3. 见图说明

Step4. 见图说明

4、将转好的GBK数据库保存好,备用。

二、进行文件备份,也就是下载到本地(这里要备份的文件包括关系用户组头像的customavatars文件夹,论坛附件的attachments文件夹,论坛图片文件images文件夹及论坛风格模板文件templates文件夹,共四个,其他所有文件均可以删除不要)

templates文件夹要特别说明一下,要备份的是除原来的default(默认模板)的其他所有模板文件夹,因为default是包含语言包的,我们到时候会上传新的GBK的default(默认模板),所以原来的这个不要,很重要,切记。

上面的重头戏完成了,下面的就简单多了

引用:

1、保证全部文件备完之后,清除老空间的所有文件!(新空间不需要这一步,但请确认新空间是否正常运行,环境是否配置正确)

2、上传一个全新的Discuz!GBK编码论坛程序,进行安装。

3、安装成功后,将第一步中转换好的GBK数据库包全部通过FTP上传到论坛的forumdata文件夹下

4、进入新论坛后台-数据库-资料恢复-找到1号包-导入,1号包导完后会退出论坛(因为第一个包里含有原论坛的会员信息),这个时候你用原来论坛的管理员帐号密码即可登陆,继续完成导入,全部顺利导入则数据库恢复成功。

你可以进论坛前台,现在主题、贴子都能显示,但是附件和会员的头像不可见,需要进行下一步。

5、上传第二步开头备份的所有四个文件夹到论坛根目录下,进入后台,更新缓存,不相信自己的眼睛?已经转换成功了!

Section IV  不要小看阴沟里翻船?常见问题Q&A

引用:

q1:为什么导入数据库导到一半就不能继续下去,有如下的提示?

Discuz! info: MySQL Query Error

User: discuz

Time: 2006-5-17 6:40pm

Script: /admincp.php

SQL: INSERT INTO cdb_members VALUES('121','?ۨ??'262a9631938f60f88df0c2618981af64','58e9b7f9','0','0','10','0','','218.17.205.144','1145935498','','1145935498','1145935498','1145935525','1','0','0','0','2','2','0','0','0','0','0','0','0','0','htbyc@gqvbs.com','0000-00-00','0','0','0','0','','12','0','0','1','0','+8','0','0')

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '262a9631938f60f88df0c2618981af64','58e9b7f9','0','0','10','0','','218.17.205.144' at line 1

Errno.: 1064

Similar error report has beed dispatched to administrator before.

答:这是语法错误,请在出错的sql(不能导入的那一卷)文件里仔细检查:

1、会员名是否出现乱码

2、帖子是否出现乱码

3、是否有不符合要求的字符出现

解决方法:根据错误提示在错误的sql卷里用查找找到出错的语句(如上面的提示就是“262a9631938f60f88df0c2618981af64”),手动删除,再上传至服务器重新导入,删除错误语句时注意语法结构,以删除整句为佳。

引用:

q2:导入数据正常,为什么论坛全是"??????"?

答:请注意MYSQL版本是否正确,详情见上面一、关于数据库的备份和编码转换的过程中的MYSQL版本部分

引用:

q3:转换好之后在使用论坛的过程中提示1062错误?

答:这是由于数据表没有添加Auto的缘故,解决方法可以看agfx版主所著的

点我查看:出现 Errno: 1062 的解决方法

引用:

q4:转换好之后发现所有用户的签名突然不能显示了!

答:请在发帖子时将使用个人签名勾上。

引用:

q5:转换好之后进入主题后最上方有这样的提示!

Warning: Invalid argument supplied for foreach() in e:\www\hz\jackiwen\wwwroot\bbs\viewthread.php on line 157

解决方法:进入后台-Discuz! 选项-积分设置-扩展积分设置,将您论坛曾用过的积分的选项勾上。

Section V  致谢&支持

以上是自己在成功转换及多次帮Discuz!的友人们转换时得出的经验,技术含量不高,大家将就着看,曾经答应过和Discuz!同仁们分享经验(前一段时间考试,实在没空),所以今天花了5个小时折腾出来了,希望对大家有所帮助。

在我身陷UTF8泥足时候曾得到了@鑫~#, asdf1999, agfx(排名不分先后)三位版主的帮助,非常感谢。

最后特别声明一下:文章是我自己写的,写的不好,但是未经我的允许,请不要私自转载,若转,一定要注明版权所有者名字及出处,谢谢!

泉州下班网------www.qzxiaban.cn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值