我需要在C/C++代码文件中编码所有出现的<
字符。为了防止冲突,我需要知道哪些字符没有保留在C/C++标准中。例如,如果$
未被保留,我可以暂时将<
编码为$
,并稍后恢复原始的C/C++代码。C/C++中的未保留字符
我需要这种编码为我的C/C++代码在类似XML的中间语言。
在此先感谢。
我需要在C/C++代码文件中编码所有出现的<
字符。为了防止冲突,我需要知道哪些字符没有保留在C/C++标准中。例如,如果$
未被保留,我可以暂时将<
编码为$
,并稍后恢复原始的C/C++代码。C/C++中的未保留字符
我需要这种编码为我的C/C++代码在类似XML的中间语言。
在此先感谢。
如果你将所有<
字符$
,如何你会保留原始文件中$
的任何实例吗?
既然你说你的目标是一个类似于XML的中间语言,为什么不使用XML转义,而是将<
改为<
而不是? (在这种情况下,您还需要将&
转换为&
。)有许多开源库可用于帮助您执行此操作。如果找不到任何独立模块,here's code I've written可能会提取其XML(un)转义功能。
不是列表毫无保留的字符(有无限的),这里是从标准的2.3.1保留的:
space, horizontal tab, vertical tab, form feed, new line a through z A through Z 0 through 9 _ { } [ ] # () % : ; . ? * + -/^ & | ~ ! = , \ " '
这取决于你的意思是“保留”。一个实现 只需要了解输入中有限数量的 字符,其他所有字符都通过 通用字符名称输入。允许实现(并且我甚至鼓励支持 )以支持更多,参见§2.2,第1点。 实际上,在注释中以及在字符串和字符文字中有(或应该)否保留字符 (至少是 宽字符格式,而在C++ 11中是Unicode格式)。你的 最好的赌注可能是引用可打印的东西。
谢谢。你做了我想要的!不幸的是,我在Python和你的C++中。根据你的代码,C/C++和XML之间唯一冲突的字符是'>','','&',''和'“吗? – ahmad
@ahmad C/C++和XML就是这样,在XML中只有一系列字符表示字符,这些字符的列表是正确的。我确信在Python中会有标准函数来(转义)XML,但是您可以轻松地使用这个字符列表编写你自己的代码。 – simonc
@ahmad请参阅http://wiki.python。org/moin/EscapingXml有关python支持XML的一些注意事项 – simonc