我想解码一些特殊字符在PHP中,似乎无法找到办法做到这一点。解码一些特殊字符的问题
$str = 'Thi’s i"s a’n e”xa“mple';
这只是返回一些点。
$str = preg_replace_callback("/(&#[0-9]+;)/", function($m) {
return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES");
}, $str);
一些其他测试只是返回相同的字符串。
$str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');
$str = htmlspecialchars_decode($str, ENT_QUOTES);
无论如何,我一直在尝试各种组合,但真的不知道如何将其转换为UTF-8字符。
什么,我期待看到这是:
Thi’s i"s a’n e”xa“mple
而实际上,如果我采取这种直接使用htmlentities
编码它,我看到不同的角色开始。
Thi’s i"s a’n e”xa“mple
不幸的是,我没有对源代码的控制,而且我被卡在处理这些字符。
它们是不是标准的,我需要用我自己的查找表手动替换它们吗?
编辑
望着这桌的位置:https://brajeshwar.github.io/entities/
我看到我在寻找后未列出的字符。当我测试这个表中的几个字符时,它们解码得很好。我猜在PHP中的列表默认是不完整的?
我得到预期的结果有三种方法.. 。 –
html_entity_decode工作正常。你使用的是什么版本的PHP?当你写下“我期待看到的东西”是什么意思? – gview
'''不是unicode码点146(U + 0092),而是U + 2019。即使它适合某个地方的某个人 - 这只是一个巧合,现在一般来说应该可以工作。 – zerkms