我想转换所有 实例到PHP中的常规空格:
echo '<meta charset="UTF-8" /> ';
echo html_entity_decode(' ');
echo html_entity_decode(' ', ENT_COMPAT, 'UTF-8');
如果第一行被注释掉,那么输出将在ISO 8859-1中并读取:
Â
前面有空间的地方 . 如果指定了UTF-8编码,则会显示:
�
这是一个未定义的UTF-8字符,后跟一个空格 . 无论如何,无论编码如何,都确保所有HTML实体空间都被正确解码?
空格字符只是一个例子,我想要做的是从未指定的字符集中读取html输入并显示它 . 所以<和<都会变成< .
3 回答
这是编码的问题 . 它们不兼容 . 对于每种编码,您必须在
html_entity_decode
中使用不同的选项 . 但是,您可以先将输入转换为utf-8(iconv),然后再使用html_entity_decode($string, ENT_COMPAT, 'UTF-8')
.如果你不知道输入的编码,你必须猜测 .
不是空格 . 它是ISO 8859-1中的字节160,而在UTF-8中是\xc2\xa0
. 正如名称no breakable space
暗示浏览器不会替换换行符 .如果你想要一个空间,你将不得不用空格替换它 .
为什么不先发送 Headers ?