簡體   English   中英

將Unicode特殊字符轉換為UTF-8

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM