在PHP 中將Unicode 轉義序列解碼為UTF-8 字元
問題:
問題: 內建函數嗎在PHP 中可以將Unicode 轉義序列(如「u00ed」)解碼為對應的UTF-8字符,例如"í"?
$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);
答案:
雖然PHP 沒有提供用於此任務的直接函數,但您可以使用正則表達式和字符編碼函數的組合來實現所需的結果:此程式碼使用正規表示式來匹配Unicode 轉義序列,並使用下列命令將它們替換為對應的UTF-8字元mb_convert_encoding().
$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 格式:
此修改後的程式碼假定轉義序列是UTF-16 編碼的,常用於某些程式語言和JSON 表示法。以上是如何在 PHP 中將 Unicode 轉義序列解碼為 UTF-8?的詳細內容。更多資訊請關注PHP中文網其他相關文章!