PHP檢測當前字元編碼並轉碼

2021-07-04 04:40:26 字數 1169 閱讀 5457

一、檢測當前字串編碼並將編碼改為utf-8

1 獲取當前字串的編碼

$encode = mb_detect_encoding($str, array("ascii",'utf-8',"gb2312","gbk",'big5')); 

2 將字元編碼改為utf-8

$str_encode = mb_convert_encoding($str, 'utf-8', $encode);

二、函式詳解

1 mb_detect_encoding — 檢測字元的編碼

說明string  mb_detect_encoding (  string $str [,  mixed $encoding_list = mb_detect_order() [,  bool $strict = false ]] )

檢測字串 str 的編碼。

引數str

待檢查的字串。

encoding_list

encoding_list 是乙個字元編碼列表。 編碼順序可以由陣列或者逗號分隔的列表字串指定。

如果省略了 encoding_list 將會使用 detect_order。

strict

strict 指定了是否嚴格地檢測編碼。 預設是 false。

返回值檢測到的字元編碼,或者無法檢測指定字串的編碼時返回 false。

2 mb_convert_encoding — 轉換字元的編碼

說明string  mb_convert_encoding (  string $str ,  string $to_encoding [,  mixed $from_encoding = mb_internal_encoding() ] )

將 string 型別 str 的字元編碼從可選的 from_encoding 轉換到 to_encoding。

引數str

要編碼的 string。

to_encoding

str 要轉換成的編碼型別。

from_encoding

在轉換前通過字元**名稱來指定。它可以是乙個 array 也可以是逗號分隔的列舉列表。 如果沒有提供 from_encoding,則會使用內部(internal)編碼。

參見支援的編碼。

返回值編碼後的 string。

PHP字串檢測編碼格式並轉換

檢測編碼格式並轉換需要兩個函式來實現 1.mb detect encoding 檢測字元的編碼 說明string mb detect encoding string str mixed encoding list mb detect order bool strict false 檢測字串 str ...

PHP判斷字符集並轉碼的函式

function safeencoding string,outencoding utf 8 encoding utf 8 for i 0 i 原理很簡單,因為gb2312 gbk是中文兩位元組,這兩個位元組是有取值範圍的,而utf 8中漢字是三位元組,同樣每個位元組也有取值範圍。而英文不 管在何種...

PHP判斷字符集並轉碼的函式

function safeencoding string,outencoding utf 8 encoding utf 8 for i 0 i 原理很簡單,因為gb2312 gbk是中文兩位元組,這兩個位元組是有取值範圍的,而utf 8中漢字是三位元組,同樣每個位元組也有取值範圍。而英文不 管在何種...