上下文: 我的iOS项目的源代码控制发生在Linux的专有软件包上,当一个新的drop到达时,我选择项目文件并将它们ftp到我的Mac并使用Xcode。
问题: 具有UTF16-LE编码的错误消息的资源文件被Xcode识别为UTF8文件。 "文字设置"对于文件显示"检测到 - Unicode(UTF-8)"在Xcode中打开文件时。项目构建失败,错误消息"损坏的文件"。该文件也被同一工作区中的其他项目引用,并且构建失败并出现错误"读取失败:数据无法读取,因为它已损坏。"
解决方法: 当我手动将编码更改为UTF16-LE(重新解释)时,我的基础项目工作正常。对于工作区中的其他项目,我需要将文件转换为UTF16-LE以使其正常工作。
问题: 我可以避免解决方法并让Xcode自动识别编码吗?
p.s:文件的编码在xcodeproj文件中是" fileEncoding = 2483028224"并在其他地方处理为二进制文件。
答案 0 :(得分:0)
基于启发式方法,自动编码检测是extremely fragile process,并且它无法正常工作。它主要是为计算机文盲的人提供一些便利,他们甚至不知道编码这样的东西甚至存在,因此无法明确地声明它。
对于其他人,我们可以方便地了解并明确声明编码,从而始终做到正确。您正在使用的程序应具有配置和设置功能,以显式声明编码,因此您不必依赖自动编码检测的voodoo。
答案 1 :(得分:0)
文件的前2个字符用于标识文件编码。在这种情况下,它没有反映它是什么。在纠正之后,Xcode似乎正确识别它。