IT小能手 影视后期
电视民工 资深站长

以DiscuzX2.5为例,轻松转换数据库编码,实现GBK和UTF8互转

经常遇到有人需要在常见的GBK和UTF8之间转换,这里以discuzX2.5为例,由SC_UTF8转换为SC_GBK,结合我自己的一些经验,提供一个较为建议的数据库编码转换方法,此方法不求通用,却能解决大部分中小站长遇到的类似问题。

总体思路其实挺简单的,我们先通过SQL语句获取到数据库里面的全部表名,然后对所有需要转换的表执行一次对应的编码转换。

这里我们使用到的工具是Navicat for mysql  10.1,这是一个非常好用的数据库管理工具,稳定易用,适合新手。

获取数据表名

开始前,请先仔细阅读文末的注意事项。

Discuz的数据表比较多,为了能批量转换,这里我们先想办法获取一下全部表名。当然,这里使用到的方法并不是单纯读取表名,而是生成一串带有这些表名的SQL语句,以便下一步能使用。

我们用Navicat连接上我们的数据库,然后执行一次查询查询用的语句如下,然后下面有对应的操作图例。

Select CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', 111,';' )  FROM information_schema.tables  Where table_name LIKE 'pre_%';

这个语句里面需要我们注意一下的是pre_这一段,这里是特意指定一下特定的表前缀,DiscuzX默认的是pre_,如果你改过,就把这里改成你的
232924avfcrcsynti1putu.png.thumb_


232925vx9wzfbjo0fb0ptb.png.thumb_


232926u1pzj6e4lai4i6ew.png.thumb_


执行完上面的语句后,我们就会得到如上图的结果,我们把区域3中的内容全部复制出来,这里可以使用ctrl+A多选,然后右键复制即可。内容复制出来后,我们将内容贴到一个txt里面。

232927j6akuh0uusug3039.png.thumb_


232929nz13g46g2ieh46pq.png.thumb_


贴到txt里面后,用记事本的批量替换功能,将其中的    RENAME TO  111 这一段替换为DEFAULT CHARACTER SET=gbk COLLATE=gbk_chinese_ci,这一段是转换为gbk,如果你是从gbk转换为utf8的话,则相应的替换为DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci即可,如上图所示。

转换数据库编码

接下来我们将批量替换好之后的所有语句再复制到Navicat的查询器内执行,这个查询器就是我们上面步骤有用到的查询,如下图例

232931nkdhi6qpiqdrhih6.png.thumb_


接着我们只需要等语句执行完毕即可。

注意事项

1、执行此操作前,请务必先完整备份数据库,以免转换过程中出现差错造成数据丢失等问题。

2、转换过程中应尽量避免再对数据库进行读写。

3、最后的转换步骤有可能稍微需要一点时间,视数据库性能和大小而定,需要耐心等待。

4、此方法仅针对数据库,如果你是要完整转换一个DZ,还需要替换所有的文件,包括模板和插件,需要仔细更新所有缓存。

5、本方法不完全保证100%安全性,仅按个人经验提供方法,遇到问题责任自负

 

 收藏 (0) 打赏

您可以选择一种方式打赏本站

支付宝扫一扫打赏

微信钱包扫描打赏

1、本站名称:LonHowe Blog
2、本站永久网址:https://lonhowe.cn
3、本站部分文章内容可能来源于网络(除特别注明原创外),仅供大家学习与参考,如需转载请注明出处。如有侵权,请给我留言联系我们进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布任何违法的相关信息,访客如发现请给我留言向我们举报,同时我们会保留相关记录,必要时上报相关部门。
6、本站部分文章存在时效性,若有错误或已失效,请给我留言联系我们,我们会第一时间更新。
文章名称:《以DiscuzX2.5为例,轻松转换数据库编码,实现GBK和UTF8互转》
文章链接:https://lonhowe.cn/2287.html
分享到: 生成海报
一个爱折腾的狮子座少年。

热门文章

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

IT、数码、科技、资源、教程、建站、站长、源码、生活、杂谈

关于本站服务条款
切换注册

登录

点击按钮进行验证

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活

点击按钮进行验证