Back to Forum Re New

[PW] 教你把phpwind论坛GBK编码的数据库转为UTF8的数据库

http://faq.phpwind.net/answer-196

Utf8编码的好处是不管什么操作系统下,什么浏览器浏览都不会乱码。要做国际站点的论坛,这个编码最合适了。
坏处:数据库体积会扩大1.5倍,原来100M的GBK 数据库,会变成150M。
不过我需要把现在的GBK转为Utf-8编码,好处自然多多。
要使用到的工具:convertz802(编码转换器,搜搜就有,必须要用到这个),UltraEdit-32。
方法:
1:把你现在PW论坛的数据库数据备份下来,用后台自带的工具即可。
2:把这个备份用convertz802转换GBK- UTF-8。
如图:




3:把转换后的备份文件的第一个,编号为1的sql文件,搜索gbk,替换为utf8。
如图:




4. 得到的sql文件放在网站的一个新建目录下,新建目录任意起名,比如delbom,然后把delbom.php也拷进该目录,然后在网站该目录下运行delbom.php,,可以遍历文件夹并自动清除bom,对文件绝对安全,亲测过的。

delbom.php的新浪微盘下载地址
http://vdisk.weibo.com/s/Y02D

5:全新安装一个Utf8编码的Phpwind程序,官方一般有提供三个版本:gbk,utf8,big5。。。。


6:把转换好并且替换好的数据库文件备份导入这个utf8新程序。

7:后台核心设置




要改为:




8:进后台更新下缓存即可。  -大功告成

9:已有的插件,修改怎么办?
如果是PW本身的程序文件建议照原样重新改,
而如果是hack的话,用convertz802也转为utf8编码然后再上传。一般不会有问题。

小提示:
由于大论坛的个别帖子的编码在转换过程中会出现问题。
导致转换后后台数据恢复时页面会出现数据库的语法错误信息


如图:





这个时候不要急,对应这时导入数据库文件的卷标号,以及出现的错误信息,(一般会出现在pw_tmsgs ,pw_post表)
在相应的sql分卷文件中搜索提示错误的位置,把这一行删除即可。

如图




然后把这个sql分卷重新上传覆盖,恢复数据库的浏览器页面选择后退,于是可以继续导入下去。





EQ中文世纪地图集地址:
www.ceqmap.com

教你把GB2312编码的EQDKP1.3.0程序包转为UTF-8编码的EQDKP程序包

第一步:用ConvertZ转GBK编码为UTF-8编码,把GB2312程序包转到UTF-8程序包。(要选择全部加入,包括子目录所有档案)。

第二步:用ultraedit,搜索-在文件中替换,要选高级-搜索子目录,把刚刚文件都去掉了bom的程序包里的关键字 GB2312 都 替换为 UTF-8 。一共有24个文件88个项目要替换的

第三步:因为上一步的过程中的转换过程中给UTF-8文件开头都添加了bom,要批量删除bom,方法见   http://tuzwu.iteye.com/blog/666268?1319859226

或者按下面的去做
得到的程序包放在在网站的一个新建目录下,新建目录任意起名,比如delbom,然后把delbom.php也拷进该目录,然后在网站该目录下运行delbom.php,,可以遍历文件夹并自动清除bom,对文件绝对安全,亲测过的。

delbom.php的新浪微盘下载地址
http://vdisk.weibo.com/s/Y02D


这样就得到了一个可用的UTF-8编码的php网站程序包了
EQ中文世纪地图集地址:
www.ceqmap.com

UTF-8和utf8在使用中的区别

http://blog.csdn.net/ljfbest/article/details/6700148


在使用中常常遇到UTF-8和utf8,现在终于弄明白他们的使用不同之处了,现在来和大家分享一下,下面我们看一下UTF-8和utf8有什么区别
“UTF-8”是标准写法,php在Windows下边英文不区分大小写,所以也可以写成“utf-8”。“UTF-8”也可以把中间的“-”省略,写成“UTF8”。一般程序都能识别,但也有例外(如下文),为了严格一点,最好用标准的大写“UTF-8”。
在数据库中只能使用“utf8”(MySQL) 在MySQL的命令模式中只能使用“utf8”,不能使用“utf-8”,也就是说在PHP程序中只能使用“set names utf8(不加小横杠)”,如果你加了“-”此行命令将不会生效,但是在PHP中header时却要加上“-”,因为IE不认识没杠的“utf8”,原因见下文。
PHP中的header:
<?php header('Content-Type: text/html; charset=UTF-8'); ?> //奇怪了:Content-Tyep用冒号,Chatset却是等号。
静态文件使用:
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

总结:
只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”。
具体为:  除了命令“mysql_query(set names utf8)”外一律用大写“UTF-8”。
EQ中文世纪地图集地址:
www.ceqmap.com
Back to Forum