【发布时间】:2018-03-14 09:59:35
【问题描述】:
我有一个字符串,我在我的代码中通过某个随机值对每个字符进行异或运算来混淆处理。
但是,生成的多行原始字符串文字将无法正确编译。
在下图中,您可以看到 MSVS2015 没有正确解析字符串,即使在两端使用了适当的分隔符(注意整个黑色文本,没有被解析为字符串的一部分)。
尝试编译代码会导致无法找到文字的右大括号的错误(即使它位于正确的位置,在右分隔符之后的字符串末尾等)。手动擦除黑色位会导致正确编译(当然,字符串不能再正确解读)。
我假设这是因为 XOR 函数的各种结果字符无法正确保存在 .h 文件中。这个问题有解决方案吗?我尝试将文件格式切换为 Unicode,但没有奏效。
【问题讨论】:
-
请不要显示代码的打印屏幕。
-
也许你应该考虑一些其他的方式来编码你的字符串?也许某种十六进制编码方案或某种导致纯 ASCII 字符的东西?当然要确保字符串文字不是to long。
-
@user23573 他正在使用原始字符串。转义字符不是问题
-
源代码只能包含来自实现定义的源字符集的字符。这意味着编译器文档必须在某个地方指定您可以使用哪些字符。
-
@MSalters 也是实现定义了文件中的实际字符如何映射到源字符集(例如 UTF-8、带有 BOM 的 UTF-16 等);也许 OP 设法创建了一个不符合该要求的文件
标签: c++ string unicode xor literals