欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql以u(píng)tf8存儲(chǔ)gbk輸出的實(shí)現(xiàn)方法提供

 更新時(shí)間:2007年11月16日 13:42:29   作者:  
一個(gè)站有可能經(jīng)歷gb2312(gbk,big5)到utf8的轉(zhuǎn)換過(guò)程,其中會(huì)遇到很多的問(wèn)題。站點(diǎn)太龐大了怎么辦呢,只能一步步來(lái)了。要是能在極少改動(dòng)前端代碼的情況下,先完成數(shù)據(jù)的轉(zhuǎn)換將會(huì)使整件事情容易得多。經(jīng)過(guò)幾天測(cè)試終于發(fā)現(xiàn),Mysql以u(píng)tf8存儲(chǔ)gbk輸出是可以實(shí)現(xiàn)的。mysql4.1后都有個(gè)特性,可以指定當(dāng)前客戶端連接所使用的字符集,mysql默認(rèn)都是latin1,或由mysql server端配置的字符集進(jìn)行連接校對(duì)。我使用utf8_general_ci來(lái)創(chuàng)建字段。 
DB:
SQL代碼:
復(fù)制代碼 代碼如下:

Create TABLE `table` (  
`id` INT( 10 ) NOT NULL ,  
`name` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,  
INDEX ( `g_id` )   
) ENGINE = innodb CHARACTER SET utf8 COLLATE utf8_general_ci;  


PHP:
存儲(chǔ)操作指定使用utf8字符集進(jìn)行連接校對(duì),讀取操作指定使用gbk字符集進(jìn)行連接校對(duì)。


PHP代碼:
復(fù)制代碼 代碼如下:

<?php  
        //    Select    DB    And    Set    Link    Use    UTF8  
        function    _select_db_utf()  
        {  
        mysql_select_db($this->db_name,    $this->db_link);  


        //    init    character  
        mysql_query("SET    NAMES    utf8",    $this->db_link);  
        mysql_query("SET    CHARACTER    SET    utf8",    $this->db_link);  
        mysql_query("SET    COLLATION_CONNECTION='utf8_general_ci'",    $this->db_link);  


        return    true;  
        }  


        //    Select    DB    And    Set    Link    Use    GBK  
        function    _select_db_gb()  
        {  
        mysql_select_db($this->db_name,    $this->db_link);  


        //    init    character  
        mysql_query("SET    NAMES    gbk",    $this->db_link);  
        mysql_query("SET    CHARACTER    SET    gbk",    $this->db_link);  
        mysql_query("SET    COLLATION_CONNECTION='gbk_chinese_ci'",    $this->db_link);  


        return    true;  
        }  
?>  
需要注意幾點(diǎn):
1. mysql必須把gbk,gb2312,utf8等字符集編譯進(jìn)去。
2. 入庫(kù)的數(shù)據(jù)內(nèi)容必須保證是最正確的UTF8編碼。
3. 存儲(chǔ)和讀取操作要指定正確的字符集進(jìn)行連接校對(duì)。

要是前端代碼操作數(shù)據(jù)入庫(kù)不能以UTF8進(jìn)行,則需要對(duì)字符進(jìn)行轉(zhuǎn)碼了。(例如用AJAX提交的數(shù)據(jù)便是正確的UTF8,這時(shí)是不用轉(zhuǎn)換的。)

因?yàn)閙b_string是PHP所支持字符最全的,而iconv比它稍差一點(diǎn),mb_string并不能完全支持一些特殊字符的轉(zhuǎn)碼,所以目前為止都沒(méi)有完美的轉(zhuǎn)碼方法。

再次對(duì)mb_string和iconv進(jìn)行比較:

mb_string:
1. 所支持字符最全
2. 內(nèi)容自動(dòng)識(shí)別編碼,不需要確定原來(lái)字符的編碼,但是執(zhí)行效率比iconv差太多
3. $content = mb_convert_encoding($content, "UTF-8", "GBK,GB2312,BIG5");(順序不同效果也有差異)

iconv:
1. 所支持字符不全
2. 需要確定原來(lái)字符的編碼,但在確定編碼的情況下執(zhí)行效率比mb_convert_encoding高
3. $content = iconv("GBK", "UTF-8", $content);

相關(guān)文章

  • MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程

    MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程

    這篇文章主要介紹了MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程,使用子查詢時(shí)需要注意其對(duì)數(shù)據(jù)庫(kù)性能的影響,需要的朋友可以參考下
    2015-11-11
  • MYSQL索引建立需要注意以下幾點(diǎn)細(xì)節(jié)

    MYSQL索引建立需要注意以下幾點(diǎn)細(xì)節(jié)

    建立MYSQL索引時(shí)需要注意以下幾點(diǎn):建立索引的時(shí)機(jī)/對(duì)于like/對(duì)于有多個(gè)條件的/開(kāi)啟索引緩存/建立索引是有代價(jià)的等等,感興趣的你可以參考下本文,或許可以幫助到你
    2013-03-03
  • mysql獲取分組后每組的最大值實(shí)例詳解

    mysql獲取分組后每組的最大值實(shí)例詳解

    這篇文章主要介紹了 mysql獲取分組后每組的最大值實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • MySQL 視圖的基礎(chǔ)操作(五)

    MySQL 視圖的基礎(chǔ)操作(五)

    這篇文章主要為大家詳細(xì)介紹了MySQL 視圖的基礎(chǔ)操作,告訴大家為什么使用視圖?如何創(chuàng)建視圖等問(wèn)題,感興趣的小伙伴們可以參考一下
    2016-08-08
  • mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度

    mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度

    這篇文章主要介紹了mysql技巧:提高插入數(shù)據(jù)(添加記錄)的速度,需要的朋友可以參考下
    2014-12-12
  • SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程)

    SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程)

    SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程),使用sqlserver2005的朋友可以參考下。
    2011-09-09
  • MySQL?中這么多索引該怎么選擇

    MySQL?中這么多索引該怎么選擇

    這篇文章主要介紹了MySQL?中這么多索引該怎么選擇,索引的本質(zhì)是存儲(chǔ)引擎用于快速查詢記錄的一種數(shù)據(jù)結(jié)構(gòu)。特別是數(shù)據(jù)表中數(shù)據(jù)特別多的時(shí)候,索引對(duì)于數(shù)據(jù)庫(kù)的性能就愈發(fā)重要,下文詳細(xì)相關(guān)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-09-09
  • 關(guān)于MySQL自增ID的一些小問(wèn)題總結(jié)

    關(guān)于MySQL自增ID的一些小問(wèn)題總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于MySQL自增ID的一些小問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Mysql離線安裝8.0.26的圖文教程

    Mysql離線安裝8.0.26的圖文教程

    這篇文章主要介紹了Mysql離線安裝8.0.26的圖文教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • MySQL數(shù)據(jù)庫(kù)主從復(fù)制原理及作用分析

    MySQL數(shù)據(jù)庫(kù)主從復(fù)制原理及作用分析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)主從復(fù)制原理并分析了主從復(fù)制的作用和使用方法,有需要的的朋友可以借鑒參考下,希望可以有所幫助,感謝閱讀
    2021-09-09

最新評(píng)論