仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1902|回复: 8
打印 上一主题 下一主题

[学习教程] 公布教你怎样办理453h安装在mysql 4.1 以上的UTF8数据库中酿成的乱码和安装失利成绩 ...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:14:13 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怀疑这些功能在MySQL5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在MySQL学习教程其他关系型数据库中则已经存在了近10年的时间。这几天在实验安装mambo4.53h版,因为我的数据库是mysq4.1以上版本,而且设定的字符集是UTF8。在实验安装了几回后发明以下几种情形:
1.将数据库设置为latin1,不修正任何文件,在安装时不管选择gb2312仍是utf8,都能够完成安装,而且网页显现一般,可是经由过程phpmyadmin看数据表时发明,内里一切中文全体为乱码,也就是说,经由过程latin1字符集保留,能够一般显现中文网页,可是实践上在数据库中中文是乱码。并且不克不及经由过程phpmyadmin备份(备份出来的文件,不管改成甚么编码,内里中文均为乱码)。以是这不是霸道,我没有做选择思索。
2.将数据库字符集设置成utf8,不修正任何文件,在安装时不管选择gb2312仍是utf8,都呈现1071specifiedkeytoolongmaxlength1000bytes的毛病。而且只需是数据库字符集设置成utf8,(utf8是一个characterset作为3bytes存储,latin1是作为1bytes存储),不管是依照论坛中的一些定见,修正installation/sql/mambo.sql仍是其余文件,城市呈现key凌驾1000bytes的毛病,安装不克不及持续。
我本意是要安装manbo的中文utf8版本,以便利和其余程序整合。以是在查询了google,论坛和其他一些材料后,经由实验,终究以我的设法,以选择manbo的utf8字符集在MySQL4.1以上,而且字符集也是utf8的数据库中安装乐成。网页显现中文一般,无乱码,而且用phpmyadmin查询数据库表时,一切中文也都显现一般,而且以utf8保留。以下是我的办理办法,仅供参考:


起首设置数据库字符集为utf8,

CODE:[Copytoclipboard]ALTERDATABASEDEFAULTCHARACTERSETutf8COLLATEutf8_general_ci
大概经由过程phpmyadmin内里间接改也一样。

修正installation/sql/mambo.sql文件:
查找将一切的

CODE:[Copytoclipboard]TYPE=MyISAM;
交换成

CODE:[Copytoclipboard]TYPE=MyISAMDEFAULTCHARSET=utf8COLLATE=utf8_general_ci;
查找

CODE:[Copytoclipboard]UNIQUEKEY`section_value_value_aro`(`section_value`,`value`)


CODE:[Copytoclipboard]UNIQUEKEY`#__gacl_section_value_value_aro`(`section_value`,`value`),
并将这2行代码用#正文失落,大概删除,whatever~~

在这一段代码上面,也就是

CODE:[Copytoclipboard]#Tablestructurefortable`#__core_acl_aro_groups`
下面,按按次增添以下4行代码:

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`CHANGE`section_value``section_value`VARCHAR(240)CHARACTERSETlatin1COLLATElatin1_binNOTNULLdefault0;

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`CHANGE`value``value`VARCHAR(240)CHARACTERSETlatin1COLLATElatin1_binNOTNULLdefault;

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`ADDUNIQUE`section_value_value_aro`(`section_value`,`value`);

CODE:[Copytoclipboard]ALTERTABLE`#__core_acl_aro`ADDUNIQUE`#__gacl_section_value_value_aro`(`section_value`,`value`);
-----------------------------

修正includes/database.php文件:
查找

CODE:[Copytoclipboard]$this->_table_PRefix=$table_prefix;
在该行代码上面增加以下三行代码:

CODE:[Copytoclipboard]mysql_query("SETNAMESutf8",$this->_resource);

CODE:[Copytoclipboard]mysql_query("SETCHARACTERSETutf8",$this->_resource);

CODE:[Copytoclipboard]mysql_query("SETCOLLATION_CONNECTION=utf8_general_ci",$this->_resource);
修正后保留。

安装的时分,选择UTF8作为编码格局安装。

云云修正后可以一般安装,而且在数据库中的中文显现和保留都一般,假如必要整合discuz大概其他程序的时分,也可以选择UTF8版本,而且整合后不会呈现在注册时利用中文用户名,可是注册后显现为乱码的征象。
注重事项
经本办法修正后,请在晋级manbo的时分,对includes/database.php做响应的修正,不然会堕落。
以上修正办法是我参考了论坛中的几位达人和经由过程google搜刮查到的一些英文材料,另有TWmanbo的一些材料后,经由实验完成修正并经测试没有成绩的。但愿对碰着一样成绩的伴侣有些用途!以为有效的伴侣顶一下,要对得起我写的那末多器材啊。
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 19:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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