swift - 在源文件中找到不可打印的ASCII字符

时间:2015-09-18 17:02:24

标签: encode

此代码:

var str = "ぴ"   //Japanese: pi

xcode报告编译错误:

  

源文件中找到不可打印的ASCII字符

3 个答案:

答案 0 :(得分:2)

你试过这个吗?

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

来自How to deal with a user input string that gives an "unprintable ascii character found in source file" error when pasted into Xcode?

答案 1 :(得分:0)

SWIFT 4:

func convertString(string: String) -> String {
    let data = string.data(using: String.Encoding.ascii, allowLossyConversion: true)
    return NSString(data: data!, encoding: String.Encoding.ascii.rawValue)! as String
}

答案 2 :(得分:0)

在Playground中,您的线路不会给您一个错误,因为它默认使用UTF-8编码。在常规项目中,您可靠的文件检查器将允许您在“文本设置”部分中定义文本编码。我建议使用某些版本的Unicode,如果你的应用主要使用西方语言,则可能是UTF-8;如果你有很多亚洲语言的文本常量,我建议使用UTF-16。

这只是为了记录,因为这是一个老问题,你可能在几年前找到了一个有效的解决方案。