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>!
htmlspecialcharsこれはPHPの に直接相当します。Qt::escapeこれは、同じことを行う関数 ( Amartel が言及) を置き換えますが、 現在は廃止されています。
関数( Qt::convertFromPlainTextAmartel も言及) は Qt 5 にも存在しますが、PHP のhtmlspecialchars. 、、 、、 を置き換える<だけでなく、空白文字 (スペース、タブ、改行など) を追加処理して、生成された HTML を元のプレーン テキストと視覚的に似たものにします。特に、改行の場合は/ 、スペースの場合は改行なしのスペース、タブの場合は複数の改行なしのスペースを入れることができます。つまり、この機能は単なるではなく、組み合わせよりもさらに包括的です。<>>&&""<p>…</p><br>htmlspecialcharsnl2br(htmlspecialchars($s))
PHP のhtmlspecialcharswithとは異なり、ENT_QUOTESこの回答にリストされている Qt 関数はいずれも一重引用符 ( ') を'/に置き換えないことに注意'してください。したがって、たとえば、QString html = "<img alt='" + s.toHtmlEscaped() + "'>";安全ではなく、安全になるだけQString html = "<img alt=\"" + s.toHtmlEscaped() + "\">";です。(ただし、<は置き換えられ、'の外では特別な意味がないので、 の<…>ようなものでQString html = "<b>" + s.toHtmlEscaped() + "</b>";も安全です。)