【问题标题】:swift - Unprintable ASCII character found in source fileswift - 在源文件中发现不可打印的 ASCII 字符
【发布时间】:2015-09-18 17:02:23
【问题描述】:

这段代码:

var str = "ぴ"   //Japanese: pi

xcode报告编译错误:

在源文件中发现不可打印的 ASCII 字符

【问题讨论】:

  • 问题是什么?
  • 怎样做才能不报错
  • 那不是ASCII字符

标签: encode


【解决方案1】:

你试过吗?

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?

【讨论】:

    【解决方案2】:

    此答案适用于在mac系统上使用windows键盘的人。

    在键入时,您可能在不知不觉中单击了键盘上的右键单击键,这将创建导致在源文件中发现不可打印 ASCII 字符错误的不可打印 ASCII 字符。

    要检查这一点去find(cmd+F)并单击右键,你可以在你的类中找到它们并删除那些字符,错误就会消失。

    谢谢

    【讨论】:

    • 太棒了——我有这个精确的键盘,正是源代码中的这个精确的键字符导致了错误。它看起来不像屏幕上的任何东西。不知道我怎么会找到它
    【解决方案3】:

    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
    }
    

    【讨论】:

    • 他说的是 XCode 编辑器问题,而不是处理某些“字符串”的问题。我也经常打这个 - 不知道无法打印的字符是如何进入我的源文件的,一定是一些奇怪的热键组合......
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 2016-12-25
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多