首頁 >後端開發 >PHP問題 >php怎麼改變字串編碼

php怎麼改變字串編碼

藏色散人
藏色散人原創
2021-07-22 10:03:263319瀏覽

php改變字串編碼的方法:1、通用iconv函數改變字串編碼;2、透過mb_convert_encoding改變字串編碼。

php怎麼改變字串編碼

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

php怎麼改變字串編碼?

php 字串編碼轉換

php 提供兩個字轉換編碼的函數,一個是通用iconv函數,另一個是處理多位元組編碼轉換函數mb_convert_encoding,需開啟擴充php_mbstring

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

說明:Convert character encoding(PHP 4 >= 4.0.6, PHP 5) 

需要先啟用mbstring 擴充函式庫,在php.ini裡將; extension=php_mbstring.dll 前面的; 去掉 

string iconv ( string in_charset, string out_charset, string str )

說明:Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) 

注意: 

#注意: 

# 注意: 

##注意: 

##注意: 

# 注意: 

##注意: 

# 注意: 

#.

#第二個參數,除了可以指定要轉換到的編碼以外,還可以增加兩個後綴://TRANSLIT 和//IGNORE, 

其中: 

TRANSLIT 會自動將不能直接轉換的字符變成一個或多個近似的字符, 

IGNORE 會忽略掉不能轉換的字符,而預設效果是從第一個非法字符截斷。 

使用: 

1. 發現iconv在轉換字元"-"到gb2312時會出錯,如果沒有ignore參數,所有該字元後面的字串都無法被儲存。不管怎麼樣,這個"-"都無法轉換成功,無法輸出。另外mb_convert_encoding沒有這個bug. 

2. mb_convert_encoding 可以指定多種輸入編碼,它會根據內容自動識別,但是執行效率比iconv差太多;如:$str = mb_convert_encoding($str,"euc -jp","ASCII,JIS,EUC-JP,SJIS,UTF- 8");「ASCII,JIS,EUC-JP,SJIS,UTF-8」的順序不同效果也有差異 

#3.一般情況下用iconv,只有當遇到無法確定原編碼是何種編碼,或是iconv轉換後無法正常顯示時才用mb_convert_encoding 函數 ###
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win"); 
$str = mb_convert_encoding($str, "EUC-JP', "auto");
###範例: ###
$content = iconv("GBK", "UTF-8", $content); 
$content = mb_convert_encoding($content, "UTF-8", "GBK");
###推薦學習: 《###PHP影片教學###》###

以上是php怎麼改變字串編碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn