我嘗試在vBulletin論壇中構建標記系統,它工作正常。將Unicode轉換爲字符
但我有一個問題在快速編輯後(使用AJAX)。
如果我在希伯來語中寫字符,它將替換unicode中的字符。
實施例I在後寫:
חחחחח לא?test!!
這使得此:
%u05D7%u05D7%u05D7%u05D7%u05D7 %u05DC%u05D0?test!!
我嘗試在vBulletin論壇中構建標記系統,它工作正常。將Unicode轉換爲字符
但我有一個問題在快速編輯後(使用AJAX)。
如果我在希伯來語中寫字符,它將替換unicode中的字符。
實施例I在後寫:
חחחחח לא?test!!
這使得此:
%u05D7%u05D7%u05D7%u05D7%u05D7 %u05DC%u05D0?test!!
看起來好像不推薦的SCRIPT關閉escape()
被用於串進行編碼。如果您通過JavaScript在網頁中迴應了此問題,則可以使用unescape()
- 請參閱this fiddle。如上所述,但這已被棄用。
應該替代地使用的功能是encodeURIComponent()
代替escape()
,和decodeURIComponent()
代替unescape()
。然後,您可以在PHP中使用urldecode()
來獲得您想要的結果,如果這是必要的步驟。
鑑於當前設置,將Unicode字符的HTML適當的實體在瀏覽器中渲染轉換,以下應該做你想要什麼:
$str = preg_replace_callback('/%u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'HTML-ENTITIES', 'UCS-2BE');
}, $str);
你知道你被允許還專這裏真正的問題?! – Rizier123