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

 找回密码
 立即注册
搜索

[已解决] 求教关于UTF8、GBK的编码问题

[复制链接]
sunpiny 发表于 2009-9-22 17:11:50 | 显示全部楼层 |阅读模式
本帖最后由 sunpiny 于 2009-9-27 08:59 编辑

问题提出:

     我原来一直使用.Net平台,使用UTF8编码,能够正确处理简体、繁体及各种特殊字符。因此我在安装 Ucenter、Uhome、DZ时也选用了UTF8编码。

     由于原系统的用户需要导入 Ucenter,因用户密码的加密问题,只能在用户登录时读取密码,在.Net中向MySQL的 Ucenter 数据库写入帐号。今天突然出现了错误:Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gb2312_chinese_ci.....)。经过检索应该是MySQL的编码问题,MySQL的UTF8处理繁体时有问题,网上有人建议用GBK编码,虽然UHome也建议使用GBK,但没能深层次阐明原因,个人感觉Unix这类东西不如微软对东方字符的支持好。

     现在已有70%用户导入完成,为了避免以后可能出现繁体或特殊字符的困扰,在目前情况下如果把编码从UTF8转换为GBK而不影响数据,可以吗?如果可以应该如何操作?
回复

使用道具 举报

玻璃屋女孩 发表于 2009-9-22 17:17:03 | 显示全部楼层
你要转换GBK的话,UC下所有应用包括UC的编码都要统一为GBK编码,包括程序和数据库

思路是:
把config.php中的$_SC['dbcharset'] = 'utf8';修改为$_SC['dbcharset'] = 'gbk';
然后再后台备份数据,再上传utf8的程序把备份好的数据放在./data/backup_/到后台恢复。

切记操作前先不要改config.php文件备份下数据库

uc类似的操作,记的一定要先备份好数据库
回复

使用道具 举报

larryli 发表于 2009-9-22 17:29:40 | 显示全部楼层
{:4_101:} 繁简体对于 UTF8 来说都是一样,会有什么问题?
回复

使用道具 举报

 楼主| sunpiny 发表于 2009-9-22 19:55:54 | 显示全部楼层
记下了。

我的问题也发现了,在.Net的MySQL连接字符串里需要指定编码,例如:
MySqlConnection.ConnectionString="Database=ucenter;Data Source=192.168.1.1;User Id=root; Password=****;Charset=utf8;"

希望对有类似问题的有帮助。
回复

使用道具 举报

龙占长歌 发表于 2009-9-23 14:54:08 | 显示全部楼层
想问一下楼上,怎么查看我当前的UCenter用的是那种编码
回复

使用道具 举报

 楼主| sunpiny 发表于 2009-9-24 10:17:23 | 显示全部楼层
按 Comsenz Team 思路:看看 config.php 中的 $_SC['dbcharset']
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-11 19:28 , Processed in 0.136137 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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