PHP で Unicode エスケープ シーケンスを UTF-8 文字にデコードする
質問: 組み込み関数はありますか「u00ed」のような Unicode エスケープ シーケンスを対応する UTF-8 文字にデコードできる PHP では、 "í" など?
答え: PHP にはこのタスク用の直接関数は提供されていませんが、正規表現と文字エンコード関数を組み合わせて使用すると、目的の結果を得ることができます。
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }, $str);
このコードは、正規表現を使用して Unicode エスケープ シーケンスと一致し、それらを対応する UTF-8 文字に置き換えます。 mb_convert_encoding().
エスケープ シーケンスが UTF-16 形式の場合:
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE'); }, $str);
この変更されたコードは、エスケープ シーケンスが UTF-16 でエンコードされていることを前提としています。 、特定のプログラミング言語と JSON 表記法で一般的に使用されます。
以上がPHP で Unicode エスケープ シーケンスを UTF-8 にデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。