将C ++代码转换为HTML安全
我决定尝试使用http://www.screwturn.eu/ Wiki作为代码段存储实用程序。到目前为止,我印象深刻,但是令我感到困扰的是,当我复制粘贴要保存的代码时," <"和" ["(http://en.wikipedia.org/wiki/Character_encodings_in_HTML#Character_references) Wiki将输出解释为Wiki或者HTML标记时,总是会产生输出错误。
有谁知道解决这个问题的方法吗?还是失败了,不知道有一个简单的实用工具可以将C ++代码转换为HTML安全代码?
解决方案
我们可以使用@@ ... @@标记对代码进行转义并将其自动包装在PRE标记中。
用<nowiki> .. </ nowiki>标记括住代码。
我不知道实用程序,但是我敢肯定我们可以编写一个非常简单的应用程序来执行查找/替换。要显示尖括号,我们只需要分别用>
和<
替换它们即可。至于方括号,这是降价方法的Wiki特定问题。
在粘贴之前,我们是否尝试过将代码包装在html pre或者code标签中?两者都允许使用任何特殊字符(例如" <")而不会被解释为html。 pre还重视内容的格式。
例子
<pre> if (foo <= bar) { do_something(); } </pre>
Dario Solera写道:"我们可以使用@@ ... @@标记对代码进行转义并将其自动包装在PRE标记中。"
如果我们不希望将其包装,则只需使用:<esc> </ esc>
需要转义的字符列表:
- <(小于号)
- &(&)
- [(开方括号)
要将C ++代码发布到网页上,我们应该先将其转换为有效的HTML,这通常需要使用HTML字符实体,如其他人所述。这不限于用<
和>
替换<
和>
。考虑以下代码:
unsigned int maskedValue = value&mask;
嗯,HTML DTD是否包含一个名为&mask;
的实体?最好也将&
替换为&
。
朝着另一个方向发展,我们可以通过用三元图??(和
??)代替它们来摆脱[[和]。在C ++中,三字组合和二字组合是字符序列,可用于表示并非所有字符集中都可用的特定字符。但是,大多数C ++程序员不太可能认识到它们。