[英]Convert unicode special characters to UTF-8
我在將Unicode字符轉換為utf-8時遇到問題。 這是我的代碼:
<?php
$unicode = '\u0411. \u0426\u044d\u0446\u044d\u0433\u0441\u04af\u0440\u044d\u043d';
$utf8string = html_entity_decode(preg_replace("/U\+([0-9A-F]{4})/", "&#x\\1;", $unicode), ENT_NOQUOTES, 'UTF-8');
echo $utf8string;
?>
它給了我以下:
\u0411. \u0426\u044d\u0446\u044d\u0433\u0441\u04af\u0440\u044d\u043d
我做錯了什么 ? 有什么建議嗎?
至少您的正則表達式要查找大寫U
,而所有轉義序列都使用小寫。
但是您的轉換腳本從javascript轉義的unicode字符到HTML實體,再到PHP字符串。 這可能是一個更明智的解決方案(針對此字符串):
$unicode = '\u0411. \u0426\u044d\u0446\u044d\u0433\u0441\u04af\u0440\u044d\u043d';
echo json_decode('"' . $unicode . '"');
但是請小心,因為如果輸入字符串包含換行符或引號,則這可能會中斷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.