如何在快速字符串变量中使用不可打印的字符?

时间:2018-11-15 10:47:10

标签: ios swift

我需要在String常量中使用不可打印的字符,但是Xcode在我的快速文件中显示错误,显示为“在源文件中找到不可打印的ASCII字符”

我的简单代码在下面

let unprintableCharInString = "12345"

您可能会在上述字符串值的前缀和后缀中看到无法打印的字符,如果您只是复制,则将我的以上代码粘贴到Sublime文本或其他支持显示不可打印字符的文本编辑器中。

但是,如果将上述代码粘贴到Xcode swift文件中,则会看到编译器错误“在源文件中找到无法打印的ASCII字符”

如果我在目标C中使用如下所示的相同字符串,则不会出现错误。

NSString *unprintableCharInString = @"12345";

那么如何像上面的Objective C代码一样直接在Swift字符串变量中使用不可打印的字符?

注意: 在保存我的问题时,由于正文文本框修剪了这些不可打印的字符,因此如果您从此处复制粘贴代码,则看不到这些字符。而不是尝试通过编辑我的问题来复制上面的代码。因此,您可以在编辑过程中在“正文”文本框中获取这些字符。

Sublime Text编辑器的屏幕截图: enter image description here

谢谢!

2 个答案:

答案 0 :(得分:1)

要显示空格字符,可以使用XCode Editor > Show Invisibles。但是我不太确定这对您的情况有帮助。

答案 1 :(得分:1)

基于上述评论中@Alladinian的建议,

答案是:我们需要在声明字符串值的同时在源代码中手动添加不可打印的ASCII字符。

示例:

let unprintableCharInString = "\u{02}123\u{1A}"

这里\u{02}是“文本开始(STX)”的十六进制值,\u{1A}是“ SUBSTITUTE(SUB)”的十六进制值

感谢@Alladinian!