免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Mambo 中國(guó)社區(qū) - Mambo使用交流 - ◆教你如何解決453h安裝在mysql 4.1 以上的UTF8數(shù)據(jù)庫(kù)中造成的亂碼和安裝失敗問題◆ - powered by Discuz!
◆教你如何解決453h安裝在mysql 4.1 以上的UTF8數(shù)據(jù)庫(kù)中造成的亂碼和安裝失敗問題◆

這幾天在嘗試安裝mambo 4.53h版, 由于我的數(shù)據(jù)庫(kù)是mysq4.1以上版本,并且設(shè)定的字符集是UTF8 。在嘗試安裝了幾次后發(fā)現(xiàn)以下幾種情況:

1. 將數(shù)據(jù)庫(kù)設(shè)置為 latin1 ,  不修改任何文件,在安裝時(shí)無論選擇gb2312 還是utf8,都可以完成安裝,并且網(wǎng)頁(yè)顯示正常,但是通過phpmyadmin看數(shù)據(jù)表時(shí)發(fā)現(xiàn),里面所有中文全部為亂碼,也就是說,通過latin1字符集保存,可以正常顯示中文網(wǎng)頁(yè),但是實(shí)際上在數(shù)據(jù)庫(kù)中中文是亂碼。 而且不能通過phpmyadmin備份(備份出來的文件,無論改成什么編碼,里面中文均為亂碼)。所以這不是王道,我沒有做選擇考慮。

2. 將數(shù)據(jù)庫(kù)字符集設(shè)置成utf8, 不修改任何文件,在安裝時(shí)無論選擇gb2312還是utf8,都出現(xiàn) 1071  specified  key  too  long  max  length  1000  bytes  的錯(cuò)誤。并且只要是數(shù)據(jù)庫(kù)字符集設(shè)置成utf8,(utf8是一個(gè) character set  作為 3 bytes存儲(chǔ),latin1 是作為1 bytes存儲(chǔ)),無論是按照論壇中的一些意見,修改 installation/sql/mambo.sql 還是別的文件, 都會(huì)出現(xiàn)key 超過1000bytes的錯(cuò)誤,安裝不能繼續(xù)。

我本意是要安裝manbo的中文utf8版本,以方便和別的程序整合。所以在查詢了google,論壇和其他一些資料后,經(jīng)過嘗試,終于以我的想法,以選擇 manbo的utf8 字符集 在mysql4.1以上,并且字符集也是utf8 的數(shù)據(jù)庫(kù)中安裝成功。 網(wǎng)頁(yè)顯示中文正常,無亂碼,并且用phpmyadmin查詢數(shù)據(jù)庫(kù)表時(shí),所有中文也都顯示正常,并且以u(píng)tf8保存。以下是我的解決方法,僅供參考:


  • 首先設(shè)置數(shù)據(jù)庫(kù)字符集為utf8,

    ALTER DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
    或者通過phpmyadmin里面直接改也一樣。

  • 修改 installation/sql/mambo.sql 文件:

    查找將所有的

    TYPE=MyISAM;
    替換成

    TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
    查找

    UNIQUE KEY `section_value_value_aro` (`section_value`,`value`)


    UNIQUE KEY `#__gacl_section_value_value_aro` (`section_value`,`value`),
    并將這2行代碼用 # 注釋掉,或者刪除,whatever~~


    在這一段代碼下面,也就是

    # Table structure for table `#__core_acl_aro_groups`
    上面,按順序增加以下4行代碼:

    ALTER TABLE `#__core_acl_aro` CHANGE `section_value` `section_value` VARCHAR( 240 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL default ‘0‘;


    ALTER TABLE `#__core_acl_aro` CHANGE `value` `value` VARCHAR( 240 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL default ‘‘;


    ALTER TABLE `#__core_acl_aro` ADD UNIQUE `section_value_value_aro` ( `section_value` , `value` );


    ALTER TABLE `#__core_acl_aro` ADD UNIQUE `#__gacl_section_value_value_aro` (`section_value`,`value`);
    -----------------------------

    • 修改 includes/database.php 文件:
      查找

      $this->_table_prefix = $table_prefix;
      在該行代碼下面添加以下三行代碼:

      mysql_query("SET NAMES ‘utf8‘", $this->_resource);


      mysql_query("SET CHARACTER SET utf8", $this->_resource);


      mysql_query("SET COLLATION_CONNECTION=‘utf8_general_ci‘", $this->_resource);
      修改后保存。

    • 安裝的時(shí)候,選擇UTF8作為編碼格式安裝。


      如此修改后能夠正常安裝,并且在數(shù)據(jù)庫(kù)中的中文顯示和保存都正常,如果需要整合discuz或者其他程序的時(shí)候,也能夠選擇UTF8版本,并且整合后不會(huì)出現(xiàn)在注冊(cè)時(shí)使用中文用戶名,但是注冊(cè)后顯示為亂碼的現(xiàn)象。

      注意事項(xiàng)
      經(jīng)本方法修改后,請(qǐng)?jiān)谏?jí)manbo的時(shí)候,對(duì) includes/database.php 做相應(yīng)的修改,否則會(huì)出錯(cuò)。

      上面的解決方案,其實(shí)就是做了個(gè)妥協(xié),將會(huì)超過1000bytes,并且不會(huì)影響中文存儲(chǔ)和顯示的數(shù)據(jù)表 mos_core_acl_aro 表中的 section_value字段和 value 字段以 latin1 處理,其他以u(píng)tf8處理而已。這樣就能做到順利安裝,而且mysql不會(huì)影響中文的顯示和存儲(chǔ)。
      我的服務(wù)器環(huán)境是:apache_2.0.55-win32
                                          php4.3.10
                                          mysql5.0.15
                                          ZendOptimizer-2.6.0-Windows
                                          MamboV4[1].5.3h_Global
      操作系統(tǒng):winxp sp2

      完全按照摟主的方式進(jìn)行更改,安裝過程一切順利,但是當(dāng)我在管理平臺(tái)進(jìn)行如下操作的時(shí)候出現(xiàn)如下錯(cuò)誤提示:
      操作:[內(nèi)容]-〉[所有內(nèi)容條目]
      錯(cuò)誤:DB function failed with error number 1054
      Unknown column ‘c.access‘ in ‘on clause‘ SQL=SELECT c.*, g.name AS groupname, cc.name, u.name AS editor, f.content_id AS frontpage, s.title AS section_name, v.name AS author FROM mos_content AS c, mos_categories AS cc, mos_sections AS s LEFT JOIN mos_groups AS g ON g.id = c.access LEFT JOIN mos_users AS u ON u.id = c.checked_out LEFT JOIN mos_users AS v ON v.id = c.created_by LEFT JOIN mos_content_frontpage AS f ON f.content_id = c.id WHERE c.state >= 0 AND c.catid=cc.id AND cc.section=s.id AND s.scope=‘content‘ ORDER BY s.title, c.catid, cc.ordering, cc.title, c.ordering LIMIT 0,10

      不知道摟主或其他人有沒有遇到過這種情況?
      解決方法:

      在這個(gè)文件中

      administrator\components\com_content\admin.content .php

      找到

      . "\n FROM #__content AS c, #__categories AS cc, #__sections AS s"

      替換為

      . "\n FROM #__categories AS cc, #__sections AS s, #__content AS c"

      共有2處要替換
      本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
      打開APP,閱讀全文并永久保存 查看更多類似文章
      猜你喜歡
      類似文章
      Discuz!5.x 論壇后臺(tái)備份完全規(guī)范
      MySQL 亂碼問題相關(guān)資料匯集
      主題:關(guān)于MySql字符集的問題
      mysql創(chuàng)建數(shù)據(jù)庫(kù)指定字符集
      MySQL字符集中文亂碼終極解決方案和mysql查詢中文問題解決方法[轉(zhuǎn)貼]
      MySQL5中文亂碼解決 - 前前 - JavaEye技術(shù)網(wǎng)站
      更多類似文章 >>
      生活服務(wù)
      分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
      綁定賬號(hào)成功
      后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
      如果VIP功能使用有故障,
      可點(diǎn)擊這里聯(lián)系客服!

      聯(lián)系客服