PHP編碼轉換函式應用

2022-04-25 15:46:02 字數 1093 閱讀 1936

最近寫了幾個小程式,其中遇到了很多字元編碼的問題,在這裡總結一下

資料庫的編碼一般在建立資料庫時設定「整理」,當然建立表時也需要設定的,而且只要有中文漢字、標點都需要設定的,一般有gbk(和gb2312一樣,雙位元組編碼,但比gb2312字元更多)、utf-8(國際通用編碼,三位元組編碼形式),我寫程式都會使用utf-8,也就是說在使用utf-8處理字元時要使用3的倍數。

資料庫建立時「整理」的設定一般為「utf-8 general」,在中間位置,有點不方便找。

資料庫中的字元編碼轉換一般有設定資料寫入的字元編碼

mysql_query("set names 'utf8';",$conn);

這裡的 set names 'utf8'是資料庫設定編碼寫入的編碼形式,通過這句,決定你的資料庫中的編碼為utf-8,寫入檔案也為utf-8編碼(如果是gbk,這裡要寫成gbk)。

字串的編碼也是很常見的,比如做網頁輸出時,如果文字儲存的編碼(一般為ascii和utf-8)和字串的編碼不同時就會亂碼,設定有時候涉及字串的切割問題將不知取幾的倍數。所以一般在編輯器中先設定編碼為乙個固定的,比如我裝完編輯器最先做的就是更改字元編碼為utf-8,這樣給以後的工作省去很多麻煩。

做過採集的人都知道,有時候最需要做的就是正規表示式、字元編碼轉換。這樣的坎我也走過,其實就是乙個編碼的問題,難倒了我好半天。也就是採集過來的是gbk編碼的文件,我沒轉換直接用帶有中文字元的正規表示式去匹配,無論怎麼匹配都匹配不到,怎麼看都是正確的啊,那個糾結啊~~

這樣的事屢見不鮮,其實只需要乙個語句就夠了

$sql = mb_convert_encoding($sql, "utf-8", "gbk");//把gbk轉換為utf-8,千萬別記混了

看明白了吧,就是中文字元編碼和英文編碼不一致造成的。其實轉換編碼還有一種語句,我沒怎麼用過,不知道這兩個那個更好,但我更喜歡用 mb_convert 類的命令,下文說說mb_convert 類的函式怎麼好用。

gb2312轉換成utf-8

$utf=iconv('gb2312', 'utf-8', $_request['keyword']);

兩種任選乙個。

PHP編碼轉換函式

gb2312轉換成utf 8 utf iconv gb2312 utf 8 request keyword 將字串utf 8碼轉換為gb2312碼 str iconv utf 8 gb2312 translit str iconv 函式definition and usage 定義和用法 iconv...

php編碼轉換函式

不過英文一般不會存在編碼問題,只有中文資料才會有這個問題。比如你用zend studio或editplus寫程式時,用的是gbk編碼,如果資料需要入資料庫,而資料庫的編碼為utf8時,這時就要把資料進行編碼轉換,不然進到資料庫就會變成亂碼。mb convert encoding的用法見官方 做乙個g...

PHP編碼轉換函式

gb2312轉換成utf 8 utf iconv gb2312 utf 8 request keyword 將字串utf 8碼轉換為gb2312碼 str iconv utf 8 gb2312 translit str iconv 函式definition and usage 定義和用法 iconv...