如何处理一个用户input的string,在粘贴到Xcode时出现“在源文件中发现不可打印的ascii字符”错误?

我正在开发一个应用程序,让用户粘贴文本,然后应用程序处理文本。

用特定的文本string,我得到一个“在源文件中find不可打印的ascii字符”错误。 不可打印的字符似乎是一个选项卡,但我不知道。 无论如何,当我尝试处理文本时,会造成问题。

当我第一次将string保存在variables中时,如何过滤出这个或其他不可打印的字符?

还是有另一种方式来处理这个?

这是另一种方法。

这个版本还允许换行符。

func convertString(string: String) -> String { var data = string.dataUsingEncoding(NSASCIIStringEncoding, allowLossyConversion: true) return NSString(data: data!, encoding: NSASCIIStringEncoding) as! String } 

如果你只是保持可打印的ASCII字符,那么这个代码应该工作。

 extension String { func printableAscii() -> String { return String(bytes: filter(self.utf8){$0 >= 32}, encoding: NSUTF8StringEncoding) ?? "" } } 

请注意,这将过滤标签和换行符也可能不会被期望。 不可打印的ASCII是小于0x20的任何值。 这是一个游乐场屏幕截图。

在这里输入图像说明