程序员人生 网站导航

帝国GBK转UTF-8引起乱码的解决方法

栏目:DedeCMS时间:2014-02-15 09:18:29

  网(LieHuo.Net)教程 第一次用帝国cms时下载的是“简体gbk”版本的,后来由于虚拟主机挂掉了,网站就没有去管它了,不过还好我备份了数据。

  过了一段时间后,还是想把网站再重新恢复起来,当然还是得用帝国cms的程序。但是这次我下的“简体utf-8”版本的。我根本不知道这会给我的网站带来什么致命的后果。

  将下载的“简体utf-8”版本用ftp软件上传到虚拟主机,然后安装,一路顺利,满心窃喜,以为网站恢复也太简单了,马上就能成功啦。

  网站安装成功后,接着就是上传以前备份的网站数据。数据全部上传成功后,接着就在帝国后台“备份/恢复数据”处“恢复数据”,过了1分钟,数据恢复完毕,以为所有的事情大功告成。进行数据更新后,进入首页发现页面一片空白,什么也没有。这下我傻眼,刷新了好几十次问题依旧,看来是真的出问题啦。

  这时我才慢慢意识到,问题的根源是网站备份的数据我重新安装的帝国cms程序的编码不对。备份的数据当时是在“简体gbk”的编码模式下备份的,而我重新安装的程序是utf-8的。网站内容显示不出来就不足为奇了。

  但是有没有什么办法把代码转换呢?

  于是我试着在帝国cms后台的“模板管理”里把“修改首页模板”的gb2312改为utf-8,然后“数据更新”首页。哇塞,首页能显示内容了,说明这个方法是可行的。

  但是,随之而来的问题是,网站的页面和模板那么多,我一个个手动去改,不仅工作量大而且还会遗漏掉一些页面或模块。有没有什么更省时省力的办法呢?

  这个办法终于被我摸索到了:

  1、进入帝国cms后台——“模板管理”——右侧最下面的“其他管理”——“批量替换模板字符”——进去以后“原字符”填写“gb2312”,“新字符”填写“utf-8”,选中全部——“替换”。进行了这一步后,为了保险起见,最好进入“数据更新”按照帝国cms的网站迁移教程更新数据。此时,网站首页,内容页应该都不会有乱码啦。

  2、但是有一个问题也有可能出现,就是你登陆后台“增加信息”时,页面会部分出现乱码,如下图:

  这个问题我琢磨了好久,也找了很多资料,都没有解决。后来看到帝国论坛里有位网友提了句“更新模型”什么的。于是我就去找“更新模型”在哪里,原来所谓的更新模型就是后台“数据更新”里“批量更新模型表单”,你把这个更新了以后,网站再也不会有任何地方有乱码。

  所以,即使你是的网站从gbk转到utf-8的,都可以用这种方法方便快捷地进行编码转换以解决乱码问题。

  上传以下图片:

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐