|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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的一些材料后,经由实验完成修正并经测试没有成绩的。但愿对碰着一样成绩的伴侣有些用途!以为有效的伴侣顶一下,要对得起我写的那末多器材啊。
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。 |
|