在 Qt5 中,它是QString::toHtmlEscaped,例如:
QString a = "Hello, <span class=\"name\">Bear</span>!";
// a will contain: Hello, <span class="name">Bear</span>!
QString b = a.toHtmlEscaped();
// b will contain: Hello, <span class="name">Bear</span>!
这直接相当于htmlspecialcharsPHP 中的。它取代了 Qt::escape功能(由 Amartel提到),它做同样的事情,但现在已经过时了。
该Qt::convertFromPlainText函数(也被 Amartel 提到)仍然存在于 Qt 5 中,但它比 PHP 的htmlspecialchars. 它不仅替换<了 with <、>with >、&with &、"with ,"而且还对空白字符(空格、制表符、换行符等)进行了额外处理,以使生成的 HTML 在视觉上看起来与原始纯文本相似。特别是,它可以将<p>…</p>/<br>用于换行,将不间断空格用于空格,将多个不间断空格用于制表符。即这个功能不仅仅是htmlspecialchars,它比nl2br(htmlspecialchars($s))组合更全面。
请注意,与 PHP 的htmlspecialcharswith不同ENT_QUOTES,此答案中列出的 Qt 函数都没有将单引号 ( ')替换为'/ '。因此,例如,QString html = "<img alt='" + s.toHtmlEscaped() + "'>";不会安全,只会安全QString html = "<img alt=\"" + s.toHtmlEscaped() + "\">";。(但是, as<被替换并且'在外面没有特殊含义<…>,类似的东西QString html = "<b>" + s.toHtmlEscaped() + "</b>";也是安全的。)