utf8_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_decode 将字符串从 UTF-8 转换为 ISO-8859-1,替换无效或者无法表示的字符。

警告

此函数自 PHP 8.2.0 起弃用。强烈建议不要应用此函数。

说明

utf8_decode(string $string): string

该函数将字符串 stringUTF-8 编码转换为 ISO-8859-1。字符串中不是有效 UTF-8 字节或者不存在于 ISO-8859-1UTF-8 字符(即 U+00FF 以上的码点)将转化为 ?

注意:

Many web pages marked as using the ISO-8859-1 character encoding actually use the similar Windows-1252 encoding, and web browsers will interpret ISO-8859-1 web pages as Windows-1252. Windows-1252 features additional printable characters, such as the Euro sign () and curly quotes ( ), instead of certain ISO-8859-1 control characters. This function will not convert such Windows-1252 characters correctly. Use a different function if Windows-1252 conversion is required.

参数

string

UTF-8 编码的字符串。

返回值

返回 string 的 ISO-8859-1 翻译。

更新日志

版本 说明
8.2.0 弃用此函数。
7.2.0 This function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.

范例

示例 #1 基础示例

<?php
// Convert the string 'Zoë' from UTF-8 to ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo
bin2hex($iso8859_1_string), "\n";

// Invalid UTF-8 sequences are replaced with '?'
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);

// Characters which don't exist in ISO 8859-1, such as
// '€' (Euro Sign) are also replaced with '?'
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>

以上例程会输出:

5a6feb
string(1) "?"
string(1) "?"

参见

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top