Xcode10,无法使用特定编码解码输入文件

Xcode 10, could not decode input file using specific encoding

我正在开发 iOS 应用程序。它在 Xcode 9.4.1 中运行良好,但是当我在 Xcode 10 中构建它时,出现以下错误:

我通过更改编码尝试了 solution given in the following post,但没有用。我通过 Reinterpret 和 Convert

尝试过

还是一样的错误:

它在 Xcode 9.4.1

上运行良好

听起来文件已损坏,可能部分文件以 UTF-8 编码,部分文件以 8859-5 编码。从它的名字来看,我怀疑这是一个西里尔语本地化版本(也许是俄语),并且该文件可能是使用未正确维护编码或使用 UTF-8 的编辑器编辑的(最常见的原因是在 Windows).

您需要打开该文件,可能是在可以处理 vim 或 Sublime Text 等随机编码的外部编辑器中,并修复任何损坏。具体如何做到这一点取决于腐败的性质。

在终端中找到您的 Localizable.strings 并执行:

$ iconv -f UTF-16LE -t UTF-8 Localizable.strings >  LocalizableNew.strings

然后检查 LocalizableNews.string 如果没有错误,只需替换文件

$ mv LocalizableNew.strings Localizable.strings

您需要在文件检查器中设置正确的文本编码。默认为 UTF-8。

如果你想在没有UI的情况下修复问题,你需要寻找XCode项目定义(通常是YOURPROJECT.xcodeproj/project.pbxproj),然后找到对导致错误的文件的引用问题。

你应该找到这样的东西(在这种情况下来自 Adium)

D182F1B611DFF23700E33AE2 /* sk */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/schema.strings; sourceTree = "<group>"; };

fileEncoding = 10为UTF-16; 4 是 UTF-8,这是当前的默认值,因此您可以将其明确设置为该值,或者干脆删除 fileEncoding 位。

我在 Xcode 10.4 中打开我的项目并在 Xcode 10.1 中再次打开它后出现类似的错误。

我通过选择所有 Localizable.strings 文件并将那里的文本编码更改为 UTF-16 解决了这个问题(在我的例子中,错误与 UTF-16 有关,您可以将其更改为 UTF-8)

因此将文本编码更改为 UTF-16 或 UTF-8 即可。

当我忘记在行尾放置分号来分隔各个翻译时,我收到了这条错误消息。