utf8_decode
UTF-8 エンコードされた文字列を、ISO-8859-1 に変換し、表現できない文字を置換する
&warn.deprecated.function-8-2-0;
&reftitle.description;
stringutf8_decode
stringstring
この関数は、文字列 string を UTF-8
エンコードから ISO-8859-1 へ変換します。
有効な UTF-8 ではない文字列バイト、
および ISO-8859-1 に存在しない UTF-8 の文字
(つまり、U+00FF 以降のコードポイント) は、
? に置き換えられます。
ISO-8859-1 文字エンコーディングを使っているとマークされている
多くの Web ページが、実際にはそれと似た Windows-1252 を使っており、
Web ブラウザは ISO-8859-1 Web ページを Windows-1252
として解釈しています。Windows-1252 は
ISO-8859-1 のある制御文字の代わりに、ユーロ記号
(€) や curly quote (“
”) を印字可能な文字として追加しています。
この関数はそうした Windows-1252 文字を正しく変換しません。
Windows-1252 の変換が必要な場合は、別の関数を使ってください。
&reftitle.parameters;
string
UTF-8 エンコードされた文字列。
&reftitle.returnvalues;
string を ISO-8859-1 に変換した結果を返します。
&reftitle.changelog;
&Version;
&Description;
8.2.0
この関数は、推奨されなくなりました。
7.2.0
この関数は、XML拡張モジュールから PHP のコアに移動しました。
これより前のバージョンでは、
この関数は XML拡張モジュール をインストールしていた場合にのみ利用可能でした。
&reftitle.examples;
基本的な例
]]>
&example.outputs;
&reftitle.notes;
この関数は推奨されません。代替については下記のとおりです。
この関数は、PHP 8.2.0 以降は推奨されなくなり、
将来のバージョンで削除される予定です。
この関数を使っているコードをチェックし、適切な代替に置き換えるべきです。
この関数と似た機能は、
mb_convert_encoding で実現できます。
この関数は、ISO-8859-1 と、多くの他の文字エンコーディングをサポートしています。
]]>
&example.outputs;
他の代替として、インストールされている拡張機能に依存した関数ですが、
UConverter::transcode と iconv
が挙げられます。
次のコードは、いずれも同じ結果を返します:
]]>
&example.outputs;
UConverter::transcode に
'to_subst' オプションとして
'?' を指定すると、
ISO-8859-1 で表現できないか、不正な文字列の場合の
utf8_decode 関数と同じ結果を返します。
'?']
);
var_dump($iso8859_1_string);
?>
]]>
&example.outputs;
&reftitle.seealso;
utf8_encode
mb_convert_encoding
UConverter::transcode
iconv