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 即可。
当我忘记在行尾放置分号来分隔各个翻译时,我收到了这条错误消息。
我正在开发 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 即可。
当我忘记在行尾放置分号来分隔各个翻译时,我收到了这条错误消息。