mb convert encoding使用舉例

2021-07-05 07:40:06 字數 4496 閱讀 7899

mb_convert_encoding函式功能非常強大,如果你能夠知道一種字元的編碼格式,基本上都可以轉換成utf-8格式。

說明:

mb_convert_encoding — 轉換字元的編碼  

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

str 要編碼的 string。

to_encoding str要轉換成的編碼型別。

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

支援的編碼:

ucs-4*

ucs-4be

ucs-4le*

ucs-2

ucs-2be

ucs-2le

utf-32*

utf-32be*

utf-32le*

utf-16*

utf-16be*

utf-16le*

utf-7

utf7-imap

utf-8*

ascii*

euc-jp*

sjis*

eucjp-win*

sjis-win*

iso-2022-jp

iso-2022-jp-ms

cp932

cp51932

sjis-mac** (別名: macjapanese)

sjis-mobile#docomo** (別名: sjis-docomo)

sjis-mobile#kddi** (別名: sjis-kddi)

sjis-mobile#softbank** (別名: sjis-softbank)

utf-8-mobile#docomo** (別名: utf-8-docomo)

utf-8-mobile#kddi-a**

utf-8-mobile#kddi-b** (別名: utf-8-kddi)

utf-8-mobile#softbank** (別名: utf-8-softbank)

iso-2022-jp-mobile#kddi** (別名: iso-2022-jp-kddi)

jis

jis-ms

cp50220

cp50220raw

cp50221

cp50222

iso-8859-1*

iso-8859-2*

iso-8859-3*

iso-8859-4*

iso-8859-5*

iso-8859-6*

iso-8859-7*

iso-8859-8*

iso-8859-9*

iso-8859-10*

iso-8859-13*

iso-8859-14*

iso-8859-15*

byte2be

byte2le

byte4be

byte4le

base64

html-entities

7bit

8bit

euc-cn*

cp936

gb18030**

hz

euc-tw*

cp950

big-5*

euc-kr*

uhc (cp949)

iso-2022-kr

windows-1251 (cp1251)

windows-1252 (cp1252)

cp866 (ibm866)

koi8-r*

示例**:

<?php  

header("content-type: text/html; charset=utf-8");

//測試mb_convert_encoding函式將html-entities轉換為utf8格式

$str = "web 前端高階開發工程師";

echo mb_convert_encoding($str, 'utf-8', 'html-entities');

echo "

";

//測試mb_convert_encoding與iconv的utf8轉換為gbk

$data = "你好世界";

$str1 = mb_convert_encoding($data, "gbk", "utf-8");

$str2 = iconv("utf-8","gb2312//ignore",$data);

if($str1==$str2)

//測試mb_convert_encoding與iconv的gbk轉換為utf8

$str3 = mb_convert_encoding($str1, "utf-8", "gbk");

$str4 = iconv("gb2312","utf-8//ignore",$str2);

if($str3==$str4)

//測試base64與mb_convert_encoding轉換

$str5 = base64_encode("你好,世界");

echo mb_convert_encoding($str5, "utf-8", "base64");

?>

iconv — convert string to requested character encoding(php 4 >= 4.0.5, php 5)

mb_convert_encoding — convert character encoding(php 4 >= 4.0.6, php 5)

<1>.用法:

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

需要先啟用 mbstring 擴充套件庫,在 php.ini裡將; extension=php_mbstring.dll 前面的 ; 去掉string iconv ( string in_charset, string out_charset, string str )

<2>.注意:

第二個引數,除了可以指定要轉化到的編碼以外,還可以增加兩個字尾://translit 和 //ignore,其中:

//translit 會自動將不能直接轉化的字元變成乙個或多個近似的字元,

//ignore 會忽略掉不能轉化的字元,而預設效果是從第乙個非法字元截斷。

returns the converted string or false on failure.

<3>.使用:

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 函式.

from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. if it is not specified, the internal encoding will be used.

$str = mb_convert_encoding($str, "ucs-2le", "jis, eucjp-win, sjis-win");

$str = mb_convert_encoding($str, "euc-jp', "auto");

<4>.例子:

$content = iconv("gbk", "utf-8", $content);

$content = mb_convert_encoding($content, "utf-8", "gbk");

更多更詳細的內容請學會使用php手冊。

mb convert encoding使用舉例

mb convert encoding函式功能非常強大,如果你能夠知道一種字元的編碼格式,基本上都可以轉換成utf 8格式。mb convert encoding 轉換字元的編碼 string mb convert encoding string str string to encoding mix...

Java5 列舉型別使用總結

public enum sharpshooter 4 locked 鎖定目標 aim 瞄準目標 shoot 射擊 private string desc 列舉說明 private sharpshooter 4 string desc this.desc desc public string getd...

7 2列舉排列

7.2.1生成1 n 的排列 問題描述 輸入整數n,按照字典序從小到大列印出1 n的去所有排列。兩個序列的字典序大小關係等價於從頭開始第乙個不相同處的大小關係,例如 1,2,3 3,2,1 n 3時,輸出結果是 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 演算法思想 設集...