我想解碼一些特殊字符在PHP中,似乎無法找到辦法做到這一點。解碼一些特殊字符的問題
$str = 'Thi’s i"s a’n e”xa“mple';
這只是返回一些點。
$str = preg_replace_callback("/(&#[0-9]+;)/", function($m) {
return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES");
}, $str);
一些其他測試只是返回相同的字符串。
$str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');
$str = htmlspecialchars_decode($str, ENT_QUOTES);
無論如何,我一直在嘗試各種組合,但真的不知道如何將其轉換爲UTF-8字符。
什麼,我期待看到這是:
Thi’s i"s a’n e」xa「mple
而實際上,如果我採取這種直接使用htmlentities
編碼它,我看到不同的角色開始。
Thi’s i"s a’n e”xa“mple
不幸的是,我沒有對源代碼的控制,而且我被卡在處理這些字符。
它們是不是標準的,我需要用我自己的查找表手動替換它們嗎?
編輯
望着這桌的位置:https://brajeshwar.github.io/entities/
我看到我在尋找後未列出的字符。當我測試這個表中的幾個字符時,它們解碼得很好。我猜在PHP中的列表默認是不完整的?
我得到預期的結果有三種方法.. 。 –
html_entity_decode工作正常。你使用的是什麼版本的PHP?當你寫下「我期待看到的東西」是什麼意思? – gview
'''不是unicode碼點146(U + 0092),而是U + 2019。即使它適合某個地方的某個人 - 這只是一個巧合,現在一般來說應該可以工作。 – zerkms