2

我的 Localizable.strings 文件不知何故已损坏,我不知道如何恢复它。

如果我将它作为纯文本文件打开,它会以我无法在此处复制的奇怪字符开头。

如果我将文件保留为应用程序构建。如果我进行任何更改,要么没有正确解释这些值,要么在编译时出现错误。

Localizable.strings: Conversion of string failed. The string is empty.
Command /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copystrings failed with exit code 1

我怀疑这是一个编码问题,但我不知道它是如何发生的(也许是 SVN 的罪魁祸首?)也不知道如何解决它。任何提示将不胜感激。

4

7 回答 7

6

我对听起来与您自己的文件非常相似的同一个文件有疑问。发生在我身上的是 Xcode 不知道正确的文件格式。我经常在重新安排项目时遇到这个问题,我删除了这个文件并将其重新添加到 Xcode 项目中。当我重新添加文件时,它的编码被设置为类似西罗马的东西,它似乎不能呈现除 ASCII 以外的任何东西。

这是我解决问题的方法:

  • 在 Xcode 的 Groups&Files 面板中选择 Localizable.stings 文件。

  • 对该文件执行获取信息。

  • 在信息面板上选择常规选项卡。

  • 在该选项卡中,转到文件编码并更改其值。

最后一步是诀窍所在,因为您现在必须猜测正确的编码。我发现对于大多数欧洲语言来说,“Unicode (UTF-8)”是有效的。对于亚洲语言,我发现“Unicode (UTF-16/32)”是可以尝试的。

于 2010-10-25T21:55:34.590 回答
3

我只是有那个错误,因为我忘记了分号。我花了一段时间才弄清楚。似乎是一个非常模棱两可的编译器错误,但修复很简单。

于 2012-02-03T21:58:12.757 回答
2

确保在 File-Get Info 中选择了 UTF-16。如果它设置为 none 或 UTF-8 作为编码,那么您需要更改它。如果您的字符之间有空格,那么您选择将文件“重新解释”为 UTF-16。如果文件中有奇怪的字符,则需要删除它们。

于 2010-11-13T16:05:13.503 回答
2

执行UTF-8的问题,有时候还是要检查一下内容,以防出现语法问题。

使用以下正则表达式逐行验证您的文本,如果有任何行不匹配,则一定有问题。

"(.+?)"="(.+?)";

于 2011-09-10T11:50:02.003 回答
1

您可以使用plutil命令行工具。不带选项或带-lint选项时,它会检查作为参数给出的文件的语法。它会更准确地告诉你错误在哪里。

于 2014-01-29T11:16:42.040 回答
0

当引用丢失或文件不正确时,我会发生这种情况。最常见的是,由于我的语言文件是由另一个团队成员完成的,他往往会忘记引用或其他内容。通常 XCode 会在该行显示错误,有时它不会并且只是抛出“损坏的数据”错误。

仔细检查你的所有字符串是否正确地用引号括起来

于 2011-11-24T01:42:25.190 回答
0

在 Xcode 中打开文件。

在 Project Navigator 中右键单击它。

选择打开方式 -> ASCII 属性列表

于 2014-01-17T15:30:18.617 回答