php輸出的字串編碼和header頭訊息宣告的編碼不一致時輸出亂碼。
PHP程式開發中,編碼問題一定困擾了不少人,例如:當我們需要輸出GBK編碼的字串時,但不知道傳過來的字串是GBK編碼還是UTF8編碼,因此無法轉換編碼,這時我們需要一個能統一編碼的函數。
使用PHP連接MS SQL Server資料庫,查看了一下資料庫的編碼
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
傳回為936,即GBK編碼。
936 簡體中文GBK
950 繁體中文BIG5
437 美國/加拿大英文
932 日文
949 韓文
#866 俄文
65001 unicode UFT-8
如果欄位有中文,PHP檔案設定編碼為GBK2312,則取資料庫資訊時沒有問題:
print_r($rs[ "客戶編碼"]);
如果PHP檔案設定編碼為utf-8,則會報告錯誤。
如果要將php檔案的編碼設定為utf-8,則需要轉換編碼:
print_r($rs[mb_convert_encoding("客戶編碼","GBK","UTF -8")]);//列印記錄陣列
這樣就沒有問題了。
以上是php 編碼轉換分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!