按国际惯例,先备份两个论坛的数据库(停止mysql服务 ctrl+c mysql的DATA目录 然后ctrl+v就行了)!
举例将UTF-8论坛的数据转到gbk论坛(gbk转utf-8只要反向操作即可)
这里用到的工具有navicat 和 emeditor
先用navicat打开UTF8的数据库 选择转存SQL文件
[img]http://dl.iteye.com/upload/attachment/432699/cf7bf8d8-b2f4-32cd-9269-0fde85a0eee5.jpg[/img]
然后用emeditor打开转存的SQL文件
将所有
CHARSET=utf8;
复制代码
替换为
CHARSET=gbk;
复制代码
[img]http://dl.iteye.com/upload/attachment/432703/9e4fa75d-b874-33d3-89ee-a70021cf062c.jpg[/img]
另存为utf-8,(为什么另存为UTF-8,主要是为了防止丢失特殊字符)
[img]http://dl.iteye.com/upload/attachment/432706/dcd99722-0e80-32ef-bbc2-0574361619d8.jpg[/img]
使用navicat打开gbk的数据库,ctrl+a全选所有表,右键->清空表
[img]http://dl.iteye.com/upload/attachment/432709/00b2b575-0d8d-3927-851a-faf2bd377ea1.jpg[/img]
右键点击数据库,点运行批次任务文件,选择转存的SQL文件,选择utf8编码,选中错误继续
[img]http://dl.iteye.com/upload/attachment/432711/cdd39f0f-15da-3c72-87b8-8bda29a8ee31.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/432713/8cf1dbe4-0cfd-3919-a6a7-c0cbe760c237.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/432715/7015bff2-7bfc-3d37-94c2-b044e19265bc.jpg[/img]
有1175个错误,
[img]http://dl.iteye.com/upload/attachment/432718/fed40007-05a2-320d-ac47-5f57e2cd3cbc.jpg[/img]
不要紧,查看错误内容后可以发现141万帖子中有三十多个帖子出错没有转换过来,这些帖子都是采集来的里面充斥着大量的html代码和ASCII字符,就算能转换过来也是一些垃圾帖子
如果你的错误太多,你可以用7楼附件中的mysql导入工具用mysql.exe自带的导入函数来进行导入工作
用navicat 打开表 cdb_uc_applications 修改 charset和dbcharset字段的内容为gbk
[img]http://dl.iteye.com/upload/attachment/432721/47d29ba2-e666-35e8-9b0e-eb5674fd9e1a.jpg[/img]
清理缓存,转换完成!
其他内容(别丢了):
uc_server\data\avatar(用户头像)
bbs\attachments(论坛附件)
home\attachment(家园附件)
关于utf-8数据转换到gbk之后出现的分类消失问题解决(gbk转utf8则反向操作) http://www.discuz.net/redirect.php?goto=findpost&ptid=1514193&pid=12732799
举例将UTF-8论坛的数据转到gbk论坛(gbk转utf-8只要反向操作即可)
这里用到的工具有navicat 和 emeditor
先用navicat打开UTF8的数据库 选择转存SQL文件
[img]http://dl.iteye.com/upload/attachment/432699/cf7bf8d8-b2f4-32cd-9269-0fde85a0eee5.jpg[/img]
然后用emeditor打开转存的SQL文件
将所有
CHARSET=utf8;
复制代码
替换为
CHARSET=gbk;
复制代码
[img]http://dl.iteye.com/upload/attachment/432703/9e4fa75d-b874-33d3-89ee-a70021cf062c.jpg[/img]
另存为utf-8,(为什么另存为UTF-8,主要是为了防止丢失特殊字符)
[img]http://dl.iteye.com/upload/attachment/432706/dcd99722-0e80-32ef-bbc2-0574361619d8.jpg[/img]
使用navicat打开gbk的数据库,ctrl+a全选所有表,右键->清空表
[img]http://dl.iteye.com/upload/attachment/432709/00b2b575-0d8d-3927-851a-faf2bd377ea1.jpg[/img]
右键点击数据库,点运行批次任务文件,选择转存的SQL文件,选择utf8编码,选中错误继续
[img]http://dl.iteye.com/upload/attachment/432711/cdd39f0f-15da-3c72-87b8-8bda29a8ee31.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/432713/8cf1dbe4-0cfd-3919-a6a7-c0cbe760c237.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/432715/7015bff2-7bfc-3d37-94c2-b044e19265bc.jpg[/img]
有1175个错误,
[img]http://dl.iteye.com/upload/attachment/432718/fed40007-05a2-320d-ac47-5f57e2cd3cbc.jpg[/img]
不要紧,查看错误内容后可以发现141万帖子中有三十多个帖子出错没有转换过来,这些帖子都是采集来的里面充斥着大量的html代码和ASCII字符,就算能转换过来也是一些垃圾帖子
如果你的错误太多,你可以用7楼附件中的mysql导入工具用mysql.exe自带的导入函数来进行导入工作
用navicat 打开表 cdb_uc_applications 修改 charset和dbcharset字段的内容为gbk
[img]http://dl.iteye.com/upload/attachment/432721/47d29ba2-e666-35e8-9b0e-eb5674fd9e1a.jpg[/img]
清理缓存,转换完成!
其他内容(别丢了):
uc_server\data\avatar(用户头像)
bbs\attachments(论坛附件)
home\attachment(家园附件)
关于utf-8数据转换到gbk之后出现的分类消失问题解决(gbk转utf8则反向操作) http://www.discuz.net/redirect.php?goto=findpost&ptid=1514193&pid=12732799