最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql以utf8存儲gbk輸出的實現(xiàn)方法提供

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


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

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

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

再次對mb_string和iconv進行比較:

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

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

相關(guān)文章

  • 深入研究mysql中的varchar和limit(容易被忽略的知識)

    深入研究mysql中的varchar和limit(容易被忽略的知識)

    這篇文章主要介紹了深入研究mysql中的varchar和limit(容易被忽略的知識),本文探究了varchar(5)可以存儲多少個漢字、多少個字母數(shù)字和mysql中的limit你真的會用嗎兩個知識點,需要的朋友可以參考下
    2015-03-03
  • linux/mac安裝mysql忘記密碼的解決辦法

    linux/mac安裝mysql忘記密碼的解決辦法

    這篇文章主要給大家介紹了關(guān)于linux/mac安裝mysql忘記密碼的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • MySQL錯誤代碼大全

    MySQL錯誤代碼大全

    本章列出了當(dāng)你用任何主機語言調(diào)用MySQL時可能出現(xiàn)的錯誤。首先列出了服務(wù)器錯誤消息。其次列出了客戶端程序消息
    2014-01-01
  • MySQL8.0.26的安裝與簡化教程(全網(wǎng)最全)

    MySQL8.0.26的安裝與簡化教程(全網(wǎng)最全)

    MySQL關(guān)是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),所使用的 SQL 語言是用于訪問數(shù)據(jù)庫的最常用的標(biāo)準(zhǔn)化語言,今天通過本文給大家分享MySQL8.0.26的安裝與簡化教程使全網(wǎng)最詳細(xì)的安裝教程,需要的朋友參考下吧
    2021-07-07
  • Mysql索引創(chuàng)建刪除及使用代價

    Mysql索引創(chuàng)建刪除及使用代價

    這篇文章主要為大家介紹了Mysql索引創(chuàng)建刪除及使用代價詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • MySQL thread_stack連接線程的優(yōu)化

    MySQL thread_stack連接線程的優(yōu)化

    當(dāng)有新的連接請求時,MySQL首先會檢查Thread Cache中是否存在空閑連接線程,如果存在則取出來直接使用,如果沒有空閑連接線程,才創(chuàng)建新的連接線程
    2017-04-04
  • Express連接MySQL及數(shù)據(jù)庫連接池技術(shù)實例

    Express連接MySQL及數(shù)據(jù)庫連接池技術(shù)實例

    數(shù)據(jù)庫連接池是程序啟動時建立足夠數(shù)量的數(shù)據(jù)庫連接對象,并將這些連接對象組成一個池,由程序動態(tài)地對池中的連接對象進行申請、使用和釋放,本文重點給大家介紹Express連接MySQL及數(shù)據(jù)庫連接池技術(shù),感興趣的朋友一起看看吧
    2022-02-02
  • Python MySQL進行數(shù)據(jù)庫表變更和查詢

    Python MySQL進行數(shù)據(jù)庫表變更和查詢

    這篇文章主要介紹了Python MySQL進行數(shù)據(jù)庫表變更和查詢的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • MySQL 最基本的SQL語法/語句

    MySQL 最基本的SQL語法/語句

    MySQL 最基本的SQL語法/語句,使用mysql的朋友可以參考下。
    2011-09-09
  • mysql中整數(shù)數(shù)據(jù)類型tinyint詳解

    mysql中整數(shù)數(shù)據(jù)類型tinyint詳解

    大家好,本篇文章主要講的是mysql中整數(shù)數(shù)據(jù)類型tinyint詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論

渭源县| 从江县| 南漳县| 兰西县| 鄄城县| 大厂| 霍邱县| 鸡泽县| 冀州市| 深州市| 磐石市| 滁州市| 宜兰县| 万山特区| 蒙城县| 麟游县| 新乡县| 晋宁县| 南乐县| 鹿邑县| 吐鲁番市| 华阴市| 开原市| 连江县| 高碑店市| 陇南市| 衡南县| 南昌市| 石城县| 巩义市| 梁河县| 长白| 大兴区| 清河县| 云浮市| 金山区| 都昌县| 江孜县| 高碑店市| 保定市| 开封县|