Swift 在终端中发现源文件中的无效 UTF-8
Swift in terminal invalid UTF-8 found in source file
在 swift 2.1 和 Xcode 7.1.1 中
我有下面的代码,当在终端中 运行 时,它会产生下一个输出块。
import Foundation
let oldName = "eleven"
let newName = "twelve"
let baseName = "/Users/empl1/Documents/abc/"
let ignorFile: Set = ["png", "jpg"]
let fm = NSFileManager()
let dirEnum = fm.enumeratorAtPath(baseName + oldName)
while let file = dirEnum?.nextObject() {
}
这是我在终端中看到的:
FredMac:Documents empl1$ swiftc copier.swift
FredMac:Documents empl1$ swift copier
copier:1:1: error: invalid UTF-8 found in source file
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
copier:1:2: error: invalid UTF-8 found in source file
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
copier:1:3: error: invalid UTF-8 found in source file
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
copier:1:4: error: input files must be encoded as UTF-8 instead of UTF-16
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
FredMac:Documents empl1$
这个问题是如何解决的?
我认为您的源文件不是 UTF8 编码。或者,如果您从某处复制并粘贴源代码,则可能会有一些隐藏字符。
为简单起见,您应该在与源文件相同的目录中打开终端,然后
您要么必须键入 swift ./copier.swift
到 运行 并立即解释您的源文件,而不会发出可执行文件,
或 swiftc ./copier.swift
然后 ./copier
编译您的源代码并 运行 发出 ./copier
可执行文件。
在 swift 2.1 和 Xcode 7.1.1 中
我有下面的代码,当在终端中 运行 时,它会产生下一个输出块。
import Foundation
let oldName = "eleven"
let newName = "twelve"
let baseName = "/Users/empl1/Documents/abc/"
let ignorFile: Set = ["png", "jpg"]
let fm = NSFileManager()
let dirEnum = fm.enumeratorAtPath(baseName + oldName)
while let file = dirEnum?.nextObject() {
}
这是我在终端中看到的:
FredMac:Documents empl1$ swiftc copier.swift
FredMac:Documents empl1$ swift copier
copier:1:1: error: invalid UTF-8 found in source file
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
copier:1:2: error: invalid UTF-8 found in source file
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
copier:1:3: error: invalid UTF-8 found in source file
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
copier:1:4: error: input files must be encoded as UTF-8 instead of UTF-16
?????@ ? H__PAGEZEROx__TEXT__text__TEXT?
FredMac:Documents empl1$
这个问题是如何解决的?
我认为您的源文件不是 UTF8 编码。或者,如果您从某处复制并粘贴源代码,则可能会有一些隐藏字符。
为简单起见,您应该在与源文件相同的目录中打开终端,然后
您要么必须键入 swift ./copier.swift
到 运行 并立即解释您的源文件,而不会发出可执行文件,
或 swiftc ./copier.swift
然后 ./copier
编译您的源代码并 运行 发出 ./copier
可执行文件。