0

在 htmlspecialchars 函数中,如果设置了 ENT_SUBSTITUTE 标志,它应该替换一些无效字符。

什么字符被替换?无效字符与用于替换它的字符之间的映射是什么?

4

1 回答 1

1

只有一个通用替换字符:U+FFFD。如果您正在写出 UTF-8,则此代码点已适当编码。如果没有,您将获得相应的字符引用�

不存在可逆映射。根据定义,原始字节序列是无效的,即它没有值(valid =值)。

被替换的字节(不是真正的“字符”)是那些在假定的源编码中无效的字节。例如,如果您的源编码是 UTF-16 并且您有一个单独的代理,那将是“无效的”(尽管从技术上讲,任何文本处理器都应该在这种情况下致命地中止)。作为一个更好的例子,如果源编码是 ASCII,那么任何高于 127 的值都是无效字符。

于 2011-11-20T23:45:24.783 回答