HOWTO · PHP
PHP UTF-8 轉換
本教程演示瞭如何使用不同的方法將字串轉換為 utf-8 編碼。
本頁內容
UTF-8 是一種編碼 Unicode 字元的方法,每個字元在一到四個位元組之間。
它用於處理特殊字元或來自非英語語言的字元。
PHP 有不同的方法將文字轉換為 UTF-8。
在 PHP 中使用 utf8_encode() 和 utf8_decode() 編碼和解碼字串
utf8_encode() 和 utf8_decode() 都是 PHP 中的內建函式。
它用於編碼和解碼 ISO-8859-1,以及其他型別的字串到 UTF-8,這兩個函式都以字串作為引數。
請參見下面的示例:
<?php
$demo="\xE0\xE9\xED"; //ISO-8859-1 String àéí
echo "UTF-8 Encoded String: ";
echo utf8_encode($demo) ."<br>";
echo "UTF-8 Decoded String: ";
echo utf8_decode(utf8_encode($demo)) ."<br>";
echo "UTF-8 Encoded String from the decoded: ";
echo utf8_encode(utf8_decode(utf8_encode($demo))) ."<br>";
?>
上面的程式碼將一個 ISO-8859-1 字串編碼為 UTF,然後再次解碼輸出。你看到的輸入字串採用 ISO-8859-1 編碼。
輸出:
UTF-8 Encoded String: àéí
UTF-8 Decoded String: ���
UTF-8 Encoded String from the decoded: àéí
utf8_decode() 將帶有 ISO-8859-1 字元的字串用 UTF-8 編碼轉換為單位元組 ISO-8859-1。
在將 ISO-8859-1 編碼文字讀取為 UTF-8 時,你經常會看到那個問號。
使用 iconv() 將字串轉換為 UTF-8
iconv() 是另一個內建的 PHP 函式,用於從一個 Unicode 轉換字串。
它需要三個引數,一個是字串的 Unicode,第二個是你要轉換的 Unicode,第三個是字串本身。
請參見下面的示例:
<?php
$demo="\xE0\xE9\xED"; //ISO-8859-1 String àéí
echo "The UTF-8 String is: ";
echo iconv("ISO-8859-1", "UTF-8", $demo)."<br>";
//mb_detect_encoding() is a function used to detect encoding of the given text.
echo "The UTF-8 String with auto detection is: ";
echo iconv(mb_detect_encoding($demo, mb_detect_order(), true), "UTF-8", $demo);
?>
上面的程式碼採用三個引數並將文字轉換為 UTF-8。
輸出:
The UTF-8 String is: àéí
The UTF-8 String with auto detection is: àéí
PHP 還提供了其他函式,如 recode_string() 或 mb_convert_encoding(),其工作方式類似於 iconv;他們將字串轉換為請求的 Unicode。