【问题标题】:Unicode Replacement Characters in the PHP htmlspecialchars functionPHP htmlspecialchars 函数中的 Unicode 替换字符
【发布时间】:2012-01-02 14:13:46
【问题描述】:

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

替换了哪些字符?无效字符和用来替换的字符之间的映射是什么?

【问题讨论】:

    标签: php htmlspecialchars html-sanitizing


    【解决方案1】:

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

    没有可逆映射。根据定义,原始字节序列是invalid,即它没有值(valid = 有值)。

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

    【讨论】:

      猜你喜欢
      • 2018-04-19
      • 2011-04-26
      • 2012-11-16
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多