我有一個包含非英文符號的UTF8字符串。我需要將它們轉換爲拉丁/數字,然後將它們還原。將任何字符編碼爲數字/拉丁文並將其解碼回來
我試圖htmlentities('字')
結果是å­�
,但我需要像x3445
,所以我可以用html_entity_decode()
或類似的東西,將返回原來的字符。
我該怎麼用PHP做到這一點?
我有一個包含非英文符號的UTF8字符串。我需要將它們轉換爲拉丁/數字,然後將它們還原。將任何字符編碼爲數字/拉丁文並將其解碼回來
我試圖htmlentities('字')
結果是å­�
,但我需要像x3445
,所以我可以用html_entity_decode()
或類似的東西,將返回原來的字符。
我該怎麼用PHP做到這一點?
不幸的是,htmlentities只會對具有命名實體的字符進行編碼。要將其他所有內容轉換爲數字實體,您可以使用mb_encode_numericentities
。例如,
$string = mb_encode_numericentity(htmlentities($string, ENT_QUOTES, 'UTF-8'), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');
htmlentities函數的第三個參數允許您設置您想要用於轉換的字符集。 See http://au.php.net/manual/en/function.htmlentities.php
您是否嘗試過使用字符集參數設置爲UTF-8的htmlentities?否則它假定latin1。 – Krab 2011-03-27 15:15:02
試過'htmlentities('字',ENT_QUOTES,'UTF-8')'。它本身返回了角色。 – Qiao 2011-03-27 15:18:53
mb_convert_encoding('字','HTML-ENTITIES','UTF-8') – Qiao 2011-03-27 15:23:12