PHP UTF-8 轉換

Sheeraz Gul 2023年1月30日 2022年5月13日
  1. 在 PHP 中使用 utf8_encode()utf8_decode() 編碼和解碼字串
  2. 使用 iconv() 將字串轉換為 UTF-8
PHP 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。

Author: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相關文章 - PHP Encode