Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[转换] MySQL字符编码转换问题(latin1转换为gbk)

[复制链接]
sbysky 发表于 2008-12-14 21:06:45 | 显示全部楼层 |阅读模式
最近因为要将IPB论坛转换到Discuz,涉及到数据库转换的问题。服务器是Linux的,Mysql版本4.1.7
由于历史遗留的问题,以前数据库的字符集是latin1_swidish_ci的,但是一直存储中文GB2312也没问题
现在因为升级到Discuz要将数据库编码改为gbk,所以按照网上的说法进行尝试,主要参考以下两篇文章:
http://www.ixdba.net/hbcms/article/d1/366.html
https://discuz.dismall.com/thread-444081-1-1.html
但是转换后在phpMyAdmin中查看,中文都是乱码,我的phpMyAdmin版本为2.5.6,默认页面显示编码为GB2312
上面文章中说的方法不起作用,所以我在想是不是mysql本身还需要改变,请大家帮帮忙
附上一起数据供参考:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
回复

使用道具 举报

桃子(小敏) 发表于 2008-12-15 09:33:57 | 显示全部楼层
原论坛如果是gbk的,请直接安装gbk的discuz,转换就可以了
请您打开原论坛,查看下源代码,确认是gbk的吗
回复

使用道具 举报

 楼主| sbysky 发表于 2008-12-15 11:09:04 | 显示全部楼层
原来的论坛是gb2312的,但是由于建数据库时,选择的字符集是latin1_swidish_ci的,所以中文字符都被当作latin1字符储存了,尽管页面显示和导出后并不会出现乱码。

我尝试了直接利用xconvert转换,转换到Discuz后,在网页显示中文字符都是正常的,但是通过PhpMyAdmin查看(我的phpMyAdmin版本为2.5.6,默认页面显示编码为GB2312),显示的中文都是“??????”了,中文注册的用户名也不能登录

所以我在想如何先把原始数据库转换为GBK编码的,然后再转Discuz
回复

使用道具 举报

 楼主| sbysky 发表于 2008-12-15 13:40:25 | 显示全部楼层
我做了一个实验,在PhpMyAdmin里面创建一个表,字符编码为gbk_chinese_ci,然后插入中文数据,保存后再看,显示就是乱码,然后想打开修改就报错了:
#1267 - Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
请问这是什么原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-11-21 23:26 , Processed in 0.103085 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表