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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

同虎请进来.相同论坛+数据库的乱码问题. 急求解决方案!

[复制链接]
tiancheng 发表于 2007-6-14 16:48:01 | 显示全部楼层 |阅读模式
同虎请进来.相同论坛+数据库的乱码问题. 急求解决方案!
我遇到的问题:西安主机和江苏主机装的是一模一样的论坛,但是西安主机运行完好,江苏主机全是乱码.

西安主机环境是:
*
windows2003+php 4.3.11+mysql 5.0.41+discuz4.0  
说明:
mysql 5.0.41 运行时打勾了Enable Strict Mode.和Standard Character Set(Makes Latin1 the default charse)
用phpMyAdmin-2.8.2.4 查看是:
mysql charset=utf8-unicode,mysql collation=utf8_general_ci
Discuz的版本是4.0 GBK版本.
disucuz config.inc.php 里headercharset = 0;        $charset = 'gb2312';(此为重点!)
西安的表是全部是latin1_swedish_ci.




**江苏主机环境是是:
(?)+php 5.0+mysql5.0.16+discuz4.0(当然是这个,一样的,数据库都和上面一样)
说明:
mysql 5.0.16运行时情况未知.
用phpMyAdmin-2.8.2.4 查看是:
MySQL charset: UTF-8 Unicode (utf8) ;mysql collation=utf8_general_ci 和上面一样的.
Discuz的版本是4.0 GBK版本(这个就废话了.都说了一样的又重复,真是抱歉).disucuz config.inc.php 里的$headercharset = 0;        $charset = '内容填写在后有说明';(此无论怎么填写都是乱码!)

江苏的表是有些是latin1_swedish_ci. 有些是gb2312_bin.






西安主机的dz4.0一切都完好.浏览,发帖正常.备份数据,恢复数据,反反复复一万次一千次都没有问题.
江苏主机的dz4.0就是内容乱码而已.其标题栏文字比如"控制面板"都是正常文字.把西安主机的备份给江苏主机恢复的话,江苏的还是乱码.
奇怪.

我说的信息够详细了.我该怎么解决?



问题A(就是如上说的问题)暂时解决了.

问题B(在线会员中文名字乱码,其它方面没有故障.)仍然发生.截至07.6.14,已经自行解决.
所以:
我总结的经验,包含有一些看法(不一定要多么专业,毛主席说的"厚积薄发"在这里不生效,因为我关心的是你们新手):
1 , discuz的 "强制设置字符集,只乱码时... ..." 是垃圾功能.一般用不到的.
    config.inc.php 里的$headercharset = 0;别说一般人,就所有的人在几乎所有的情况下都不会感兴趣的.因为它能产生效力的地方仅仅是标标题栏文字而已!而这个地方就有用了,尤其对主机环境是mysql4.1.x或mysql5.x的朋友:
$charset = '****';        论坛默认字符集, 可选 'gbk', 'big5', 'utf-8'. 其实****还可以填写 gb2312. 或变为空.
这个例子就是改为gb2312解决的.


2 第一次装论坛时要把论坛当作自己的女人一样.切莫为了以下愚蠢的意图而顾此失彼(在未来的大环境下!就像法国大革命那样的环境.要知道以后的日子mysql4.0不会有好日子过了.大部分的主机将会是mysql5.x以上的天下,所谓未雨绸缪啊,朋友们.比如仅限目前情况的MySQL charsetUTF-8 Unicode+MySQL connection collation utf8_unicode_ci.不要再说中华的语言文字多么多么优秀.世界大环境初始mysql5.x的时候都是以拉丁文字latin1为默认,人家大部分主机的my.ini最高级别的字符集定义collocation就是latin1_swedish_ci. 我们的专业编程者们也应该抛弃旧有的mysql引用,连接了吧?).

以下是谈到的愚蠢意图.
  *贪图所谓的"gbk版数据库体积小..."
  **贪图所谓的"gbk版更新rss没有乱码..."
  ***贪图所谓的"gbk版更不像utf-8版本容易出现乱码..."

其实啊什么玩!utf-8才是大势所趋,或者说是被"大势"所趋.大势以上提到了.

这回谈经验:
1 第一次装论坛时,最好要确保你的主机环境是mysql4.1.x或以上版本.因为这个是趋势.这样做了你以后就会少遇到乱码情况.乱码问题一般人是没有什么耐心去弄的.
若你一开始就  mysql4.0,那么就一直在这样的环境下用论坛.除非你不怕数据库毁灭然后为了恢复数据出1000左右人民币,给官方作为手续费.

2 和官方反调: 开始使用论坛的时候绝对的推荐用dz utf-8版本!
  以后也要延续下去.不要换.
  这个错不了.否则出了猴儿急的情况你别来诉苦.(另无关的题外题: 后台显示的备份数据版本和mysql版本是两码事.别混淆.)
  其实discuz gbk和discuz utf-8只有一个文件不同 就是cinfig.inc.php.也可以说仅仅是各自里面的$charset不同.

3 换主机意味着换环境,你新配置了主机的话也意味着换了环境,切忌:
   *要以"常规备份"模式备份数据.
    **删除插件,删除一切潜力破坏默认模板的东西.这个切记!原因?就是数据表导入时避免出错. 我担保你们很容易出错,要是不遵守这条的话.

4 $charset = '*';的星号处留空试试或者改为gb2312,gb18030试一试.你会有稍许改观.
   但是星号改为不能使你的浏览器正常显示论坛的时候,就危险了.这时候的危险是:
   *你的会员发了帖子,帖子将会是乱码,即便是星号改回到正常(能使你的浏览器正常浏览叫正常),也不能挽回那帖子的正常.
    这个地方不是能随意改的.这个原因可能就在mysql的连接上.
   **那个会员发了帖子或者另一个管理员这时候(星号改为不正常期间)修改过后台,那么,你查看帖子的时候顶部会有一行错误.忘记了.



PS.要以怀疑的眼光看待的帖子主题是(也就是没有必要去照作以及他们的办法根本没有完全解决问题):
https://discuz.dismall.com/thread-313395-1-1.html



5 以下方法解决问题B(在线会员中文名字乱码,其它方面没有故障).注意,这里涉及的环境是mysql5.0的之下.mysql4.0之下的问题不谈.
  *utf8可以改为gbk试一试.期间可不能有人发帖子,修改后台.


(dz 4.0)后台升级数据库:

DROP TABLE IF EXISTS cdb_sessions;
CREATE TABLE cdb_sessions (
  sid char(6) binary NOT NULL default '',
  ip1 tinyint(3) unsigned NOT NULL default '0',
  ip2 tinyint(3) unsigned NOT NULL default '0',
  ip3 tinyint(3) unsigned NOT NULL default '0',
  ip4 tinyint(3) unsigned NOT NULL default '0',
  uid mediumint(8) unsigned NOT NULL default '0',
  username char(15) NOT NULL default '',
  groupid smallint(6) unsigned NOT NULL default '0',
  styleid smallint(6) unsigned NOT NULL default '0',
  invisible tinyint(1) NOT NULL default '0',
  `action` tinyint(1) unsigned NOT NULL default '0',
  lastactivity int(10) unsigned NOT NULL default '0',
  lastolupdate int(10) unsigned NOT NULL default '0',
  pageviews smallint(6) unsigned NOT NULL default '0',
  seccode smallint(6) unsigned NOT NULL default '0',
  fid smallint(6) unsigned NOT NULL default '0',
  tid mediumint(8) unsigned NOT NULL default '0',
  bloguid mediumint(8) unsigned NOT NULL default '0',
  UNIQUE KEY sid (sid),
  KEY uid (uid),
  KEY bloguid (bloguid)
) DEFAULT CHARSET=utf8 TYPE=HEAP;

[ 本帖最后由 tiancheng 于 2007-6-15 20:07 编辑 ]
下砂 发表于 2007-6-14 16:50:33 | 显示全部楼层
论坛安装的字符集是?
回复

使用道具 举报

 楼主| tiancheng 发表于 2007-6-14 17:04:05 | 显示全部楼层
原帖由 下砂 于 2007-6-14 16:50 发表
论坛安装的字符集是?

都是 Discuz!_4.0.0_SC_GBK 版本

请问字符集?好,等一下我更新图片给你看.

好了phpmyadmin查出来,
西安的是全部是latin1_swedish_ci.

江苏的嘛,等一下.... 我更新帖子....等.
江苏的某些"表"(是叫表吧?)是latin1_swedish_ci,某些是gb2312_bin.完毕

[ 本帖最后由 tiancheng 于 2007-6-14 17:16 编辑 ]
回复

使用道具 举报

下砂 发表于 2007-6-14 17:10:28 | 显示全部楼层
phpmyadmin 查看下论坛数据的字符集!
回复

使用道具 举报

 楼主| tiancheng 发表于 2007-6-14 17:33:33 | 显示全部楼层
原帖由 下砂 于 2007-6-14 17:10 发表
phpmyadmin 查看下论坛数据的字符集!


  1.                                                                  
  2. cdb_access                   MyISAM          latin1_swedish_ci  
  3.                                                                  
  4.                                                                  
  5. cdb_adminactions             MyISAM          latin1_swedish_ci  
  6.                                                                  
  7. cdb_admingroups              MyISAM          latin1_swedish_ci  
  8.                                                                  
  9. cdb_adminnotes               MyISAM          latin1_swedish_ci  
  10.                                                                  
  11.                                                                  
  12. cdb_adminsessions            MyISAM          latin1_swedish_ci  
  13.                                                                  
  14. cdb_advertisements           MyISAM          latin1_swedish_ci  
  15.                                                                  
  16. cdb_announcements            MyISAM          latin1_swedish_ci  
  17.                                                                  
  18.                                                                  
  19. cdb_attachments              MyISAM          latin1_swedish_ci  
  20.                                                                  
  21. cdb_attachtypes              MyISAM          latin1_swedish_ci  
  22.                                                                  
  23. cdb_banned                                                      
  24.                               MyISAM          latin1_swedish_ci  
  25.                                                                  
  26. cdb_bbcodes                  MyISAM          latin1_swedish_ci  
  27.                                                                  
  28. cdb_blogcaches               MyISAM          latin1_swedish_ci  
  29.                                                                  
  30.                                                                  
  31. cdb_buddys                   MyISAM          latin1_swedish_ci  
  32.                                                                  
  33. cdb_creditslog               MyISAM          latin1_swedish_ci  
  34.                                                                  
  35. cdb_failedlogins             MyISAM          latin1_swedish_ci  
  36.                                                                  
  37.                                                                  
  38. cdb_favorites                MyISAM          latin1_swedish_ci  
  39.                                                                  
  40. cdb_forumfields              MyISAM          latin1_swedish_ci  
  41.                                                                  
  42. cdb_forumlinks               MyISAM          latin1_swedish_ci  
  43.                                                                  
  44.                                                                  
  45. cdb_forums                   MyISAM          latin1_swedish_ci  
  46.                                                                  
  47. cdb_medals                   MyISAM          latin1_swedish_ci  
  48.                                                                  
  49.                                                                  
  50.                                                                  
  51.                                                                  
  52. cdb_memberfields             MyISAM          latin1_swedish_ci  
  53.                                                                  
  54.                                                                  
  55. cdb_members                  MyISAM          latin1_swedish_ci  
  56.                                                                  
  57. cdb_moderators               MyISAM          latin1_swedish_ci  
  58.                                                                  
  59. cdb_onlinelist               MyISAM          latin1_swedish_ci  
  60.                                                                  
  61.                                                                  
  62. cdb_onlinetime               MyISAM          latin1_swedish_ci  
  63.                                                                  
  64. cdb_orders                   MyISAM          latin1_swedish_ci  
  65.                                                                  
  66. cdb_paymentlog                                                  
  67.                               MyISAM          latin1_swedish_ci  
  68.                                                                  
  69. cdb_plugins                  MyISAM          latin1_swedish_ci  
  70.                                                                  
  71. cdb_pluginvars               MyISAM          latin1_swedish_ci  
  72.                                                                  
  73.                                                                  
  74. cdb_pms                      MyISAM          latin1_swedish_ci  
  75.                                                                  
  76. cdb_polls                    MyISAM          latin1_swedish_ci  
  77.                                                                  
  78. cdb_posts                    MyISAM          latin1_swedish_ci  
  79.                                                                  
  80.                                                                  
  81. cdb_profilefields            MyISAM          latin1_swedish_ci  
  82.                                                                  
  83. cdb_ranks                    MyISAM          latin1_swedish_ci  
  84.                                                                  
  85. cdb_ratelog                  MyISAM          latin1_swedish_ci  
  86.                                                                  
  87.                                                                  
  88. cdb_regips                   MyISAM          gb2312_bin         
  89.                                                                  
  90. cdb_rsscaches                MyISAM          gb2312_bin         
  91.                                                                  
  92. cdb_searchindex                                                
  93.                               MyISAM          gb2312_bin         
  94.                                                                  
  95. cdb_sessions                 MyISAM          gb2312_bin         
  96.                                                                  
  97. cdb_settings                 MyISAM          latin1_swedish_ci  
  98.                                                                  
  99.                                                                  
  100.                                                                  
  101.                                                                  
  102. cdb_smilies                  MyISAM         latin1_swedish_ci   
  103.                                                                  
  104.                                                                  
  105. cdb_stats                    MyISAM         latin1_swedish_ci   
  106.                                                                  
  107. cdb_statvars                 MyISAM         gb2312_bin         
  108.                                                                  
  109. cdb_styles                   MyISAM         latin1_swedish_ci   
  110.                                                                  
  111.                                                                  
  112. cdb_stylevars                MyISAM         latin1_swedish_ci   
  113.                                                                  
  114. cdb_subscriptions            MyISAM         gb2312_bin         
  115.                                                                  
  116. cdb_templates                                                   
  117.                               MyISAM         latin1_swedish_ci   
  118.                                                                  
  119. cdb_threads                  MyISAM         latin1_swedish_ci   
  120.                                                                  
  121. cdb_threadsmod               MyISAM         latin1_swedish_ci   
  122.                                                                  
  123.                                                                  
  124. cdb_threadtypes              MyISAM         latin1_swedish_ci   
  125.                                                                  
  126. cdb_usergroups               MyISAM         latin1_swedish_ci   
  127.                                                                  
  128. cdb_validating               MyISAM         latin1_swedish_ci   
  129.                                                                  
  130.                                                                  
  131. cdb_words                    MyISAM         latin1_swedish_ci   
  132.                                                                  
  133.           53 table(s)         MyISAM         latin1_swedish_ci   
  134.                                                                  
  135.                                                                                                                         
  136.                                                                  

  137.                                                                  
  138.                                                                
复制代码

[ 本帖最后由 tiancheng 于 2007-6-14 17:35 编辑 ]
回复

使用道具 举报

下砂 发表于 2007-6-14 17:35:07 | 显示全部楼层
回复

使用道具 举报

下砂 发表于 2007-6-14 17:35:35 | 显示全部楼层
方法2.原论坛  后台   备份数据 强制字符集gbk  再到新论坛后台恢复
回复

使用道具 举报

 楼主| tiancheng 发表于 2007-6-14 17:43:28 | 显示全部楼层
原帖由 下砂 于 2007-6-14 17:35 发表
方法2.原论坛  后台   备份数据 强制字符集gbk  再到新论坛后台恢复

坚决不同意这样的答案.
因为你根本没有看到我写的是什么.
我写的是的 discuz 4.0 GBK版本.不是dz5.5.

不过也要小谢一下.

问题解决了.
但,不是用楼上的朋友说的方法做到的.方法相似而已.
怎么弄的呢?这样来,在江苏的config中修改:        $charset = 'gb2312';        或者        $charset = 'gb18030';       
就可以.
我的数据库,从disucz后台看,是最稳定的4.0.0版本.一直是.


[ 本帖最后由 tiancheng 于 2007-6-14 17:52 编辑 ]
回复

使用道具 举报

下砂 发表于 2007-6-14 17:46:05 | 显示全部楼层

回复 #8 tiancheng 的帖子

按照方法1修改字符集看下!
回复

使用道具 举报

 楼主| tiancheng 发表于 2007-6-15 16:14:09 | 显示全部楼层
大家看经验
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 03:28 , Processed in 0.031525 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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