2011-03-27 82 views
1

我有一個包含非英文符號的UTF8字符串。我需要將它們轉換爲拉丁/數字,然後將它們還原。將任何字符編碼爲數字/拉丁文並將其解碼回來

我試圖htmlentities('字')

結果是å­�,但我需要像x3445,所以我可以用html_entity_decode()或類似的東西,將返回原來的字符。

我該怎麼用PHP做到這一點?

+0

您是否嘗試過使用字符集參數設置爲UTF-8的htmlentities?否則它假定latin1。 – Krab 2011-03-27 15:15:02

+0

試過'htmlentities('字',ENT_QUOTES,'UTF-8')'。它本身返回了角色。 – Qiao 2011-03-27 15:18:53

+0

mb_convert_encoding('字','HTML-ENTITIES','UTF-8') – Qiao 2011-03-27 15:23:12

回答

1

不幸的是,htmlentities只會對具有命名實體的字符進行編碼。要將其他所有內容轉換爲數字實體,您可以使用mb_encode_numericentities。例如,

$string = mb_encode_numericentity(htmlentities($string, ENT_QUOTES, 'UTF-8'), array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); 
相關問題