php - 将特殊字符转换为 HTML 实体,为什么或为什么不?

标签 php html utf-8 escaping

我想知道,什么是最佳实践。将所有 utf-8 特殊字符转换为 HTML 实体或仅转义 &、< 和 >。

我正在处理几个 PHP 项目。对于我网站的随机部分,Google 显示了一些错误的 utf-8 结果。

我认为这是由于以下两个原因中的一个或两个:

  • 我的托管服务提供商没有自动发送编码 header (我已经解决了这个问题)。
  • 或者描述中的文本没有完全转义。

除此之外,我注意到大多数市长公司网站不发送 '<?xml version'行,他们不会逃脱他们的角色。

转义所有字符与只转义最少必要字符有缺点(或优点)吗?

最佳答案

Are there downsides (or upsides) to escaping all characters vs only the minimum necessary?

转换<>&"'以外的任何字符(正如 htmlspecialchars() 所做的那样)现在已经没有必要了。如果页面的字符集配置正确,则使用 native UTF-8 字符(或您选择的任何字符集)都没有问题。将它们转换为实体没有任何优势。它们有时被用作字符集问题的错误解决方法,但这几乎不是一个好主意。

关于php - 将特殊字符转换为 HTML 实体,为什么或为什么不?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8573335/

相关文章:

php - 使用 Crontab 运行 PHP 脚本 (Plesk/CentOS6)

php - cURL 无法使用客户端证书(未找到 key 或密码短语错误?)

html - 从 HTML5 视频中获取原始像素数据

html - 垂直菜单奇怪的填充

html - 有没有办法让我在 css 中有一个 onclick?

xpath - 使用 lxml 和 requests 从 XPath 返回 utf-8

c# - 在 C# .NET 中编码非 ascii 字符

php - 如何在 SQL 命令中使用两个 where 语句?

javascript - 从函数返回两个变量

utf-8 - websphere 上的字符编码问题