激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

香港云服务器
服務器之家 - 數據庫 - Mysql - Mysql以utf8存儲gbk輸出的實現方法提供

Mysql以utf8存儲gbk輸出的實現方法提供

2019-10-18 16:35mysql技術網 Mysql

一個站有可能經歷gb2312(gbk,big5)到utf8的轉換過程,其中會遇到很多的問題。站點太龐大了怎么辦呢,只能一步步來了。要是能在極少改動前端代碼的情況下,先完成數據的轉換將會使整件事情容易得多。經過幾天測試終于發現,M

一個站有可能經歷gb2312(gbk,big5)到utf8的轉換過程,其中會遇到很多的問題。站點太龐大了怎么辦呢,只能一步步來了。要是能在極少改動前端代碼的情況下,先完成數據的轉換將會使整件事情容易得多。經過幾天測試終于發現,Mysql以utf8存儲gbk輸出是可以實現的。mysql4.1后都有個特性,可以指定當前客戶端連接所使用的字符集,mysql默認都是latin1,或由mysql server端配置的字符集進行連接校對。我使用utf8_general_ci來創建字段。  
DB: 
SQL代碼: 

復制代碼代碼如下:


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代碼: 

復制代碼代碼如下:


<?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. 入庫的數據內容必須保證是最正確的UTF8編碼。 
3. 存儲和讀取操作要指定正確的字符集進行連接校對。 

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

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

再次對mb_string和iconv進行比較: 

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

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

延伸 · 閱讀

精彩推薦
535
主站蜘蛛池模板: 欧美日韩一区,二区,三区,久久精品 | 国产一区在线观看视频 | 国产精品一区二区三区在线 | 精品一区二区在线观看视频 | 婷婷亚洲一区二区三区 | chinesexxxx刘婷hd| 一级片在线免费观看 | 久久爽久久爽久久av东京爽 | 羞羞电影在线观看www | 一级电影免费在线观看 | 免费一级a毛片免费观看 | 羞羞的视频免费观看 | 国产精品一区二区三区在线播放 | 久草在线新视觉 | 亚洲网站免费观看 | 成人免费福利视频 | 亚洲成人在线免费 | 涩涩天堂 | 黄色特级视频 | 久久精品亚洲欧美日韩精品中文字幕 | 日本欧美视频 | 一级片九九 | 久久精品综合视频 | 久久久国产精品成人免费 | 成人免费观看49www在线观看 | 91精品国产日韩91久久久久久360 | 日韩激情一区 | 看片一区二区三区 | 男人的天堂视频网站 | 免费国产在线观看 | av在线免费观看网 | 91免费大片 | 免费视频xxxx | 成人精品一区二区 | 久久99精品久久久久久国产越南 | 日韩大片在线永久观看视频网站免费 | 欧美大片一级毛片 | 性 毛片| 国产日产精品一区四区介绍 | 午夜久久久精品一区二区三区 | 久久成人国产精品 |