将任何字符编码为数字/拉丁语并将其解码回来

时间:2011-03-27 15:11:38

标签: php utf-8 character-encoding special-characters

我有一个包含非英文符号的UTF8字符串。我需要将它们转换为拉丁文/数字,然后将它们取回。

我尝试了htmlentities('字')

结果是å­�,但我需要类似x3445的内容,因此我可以使用html_entity_decode()或类似的内容返回原始字符。

如何使用PHP执行此操作?

2 个答案:

答案 0 :(得分:1)

不幸的是,htmlentities只会编码具有命名实体的字符。要将其他所有内容转换为数字实体,您可以使用mb_encode_numericentities。例如,

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

答案 1 :(得分:0)

htmlentities函数的第三个参数允许您设置要用于转换的字符集。 See http://au.php.net/manual/en/function.htmlentities.php