utf8_decode

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

utf8_decode Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters

说明

utf8_decode(string $string): string

This function converts the string string from the UTF-8 encoding to ISO-8859-1. Bytes in the string which are not valid UTF-8, and UTF-8 characters which do not exist in ISO-8859-1 (that is, code points above U+00FF) are replaced with ?.

注意:

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

A UTF-8 encoded string.

返回值

Returns the ISO-8859-1 translation of string.

更新日志

版本 说明
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 Basic examples

<?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) "?"

参见