1

背景:我的 iOS 项目的源代码控制发生在 Linux 中的一个专有包上,当新的 drop 到达时,我选择项目文件并将它们 ftp 到我的 Mac 并使用 Xcode。

问题:带有 UTF16-LE 编码的错误消息的资源文件被 Xcode 识别为 UTF8 文件。在 Xcode 中打开文件时,文件的“文本设置”显示“检测到 - Unicode (UTF-8)”。项目构建失败并显示错误消息“损坏的文件”。该文件也被同一工作区中的其他项目引用,并且在那里构建失败并出现错误“读取失败:数据已损坏,无法读取。”

解决方法:当我手动将编码更改为 UTF16-LE(重新解释)时,我的基础项目工作正常。对于工作区中的其他项目,我需要将文件转换为 UTF16-LE 以使其正常工作。

问题:我可以避免这种变通方法并让 Xcode 自动识别编码吗?

ps:文件的编码在 xcodeproj 文件中为“fileEncoding = 2483028224”,并在其他地方作为二进制文件处理。

4

2 回答 2

0

自动编码检测是基于启发式的极其脆弱的过程,它永远无法正常工作。它主要是为了给不懂计算机的人提供一些便利,他们甚至不知道编码这样的东西甚至存在,因此无法明确声明它。

对于其他人来说,我们可以很方便地知道和明确声明编码,因此总是正确的。您正在使用的程序应该具有在配置和设置中显式声明编码的能力,因此您不必依赖自动编码检测的巫术。

于 2012-12-12T13:14:31.627 回答
0

文件的前 2 个字符用于标识文件编码。在这种情况下,它没有反映它是什么。更正后,Xcode 似乎可以正确识别。

于 2017-02-27T06:09:10.897 回答