【发布时间】:2012-01-02 14:13:46
【问题描述】:
在 htmlspecialchars 函数中,如果设置了 ENT_SUBSTITUTE 标志,它应该替换一些无效字符。
替换了哪些字符?无效字符和用来替换的字符之间的映射是什么?
【问题讨论】:
标签: php htmlspecialchars html-sanitizing
在 htmlspecialchars 函数中,如果设置了 ENT_SUBSTITUTE 标志,它应该替换一些无效字符。
替换了哪些字符?无效字符和用来替换的字符之间的映射是什么?
【问题讨论】:
标签: php htmlspecialchars html-sanitizing
只有一个通用替换字符:U+FFFD。如果您正在写出 UTF-8,则此代码点已适当编码。如果没有,您将获得相应的字符引用 �。
没有可逆映射。根据定义,原始字节序列是invalid,即它没有有值(valid = 有值)。
被替换的字节(不是真正的“字符”)是那些在假定的源编码中无效的字节。例如,如果您的源编码是 UTF-16 并且您有一个单独的代理,那将是“无效的”(尽管从技术上讲,任何文本处理器都应该在这种情况下致命地中止)。作为一个更好的例子,如果源编码是 ASCII,那么任何高于 127 的值都是无效字符。
【讨论】: