是否有将 UTF-8 更改为 Unicode 并将非特殊字符保留为普通字母和数字的函数?
即德语单词“tchüß”将呈现为类似“tch\20AC\21AC”的内容(请注意,我正在编造 Unicode 代码)。
编辑:我正在试验以下函数,但尽管这个函数适用于 ASCII 32-127,但它似乎无法用于双字节字符:
function strToHex ($string)
{
$hex = '';
for ($i = 0; $i < mb_strlen ($string, "utf-8"); $i++)
{
$id = ord (mb_substr ($string, $i, 1, "utf-8"));
$hex .= ($id <= 128) ? mb_substr ($string, $i, 1, "utf-8") : "&#" . $id . ";";
}
return ($hex);
}
有什么想法吗?
编辑 2:找到解决方案:PHP ord() 函数不适用于双字节字符。改用:http://nl.php.net/manual/en/function.ord.php#78032
最佳答案
对于可读形式,我会使用 JSON。不需要转义 JSON 中的非 ASCII 字符,但 PHP 会:
echo json_encode("tchüß");
"tch\u00fc\u00df"
关于php - UTF-8 到 Unicode 代码点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106470/