0

我正在执行以下操作来创建一个标签,用作照片归属的一部分:

CCLabelTTF *imageSourceLabel = [CCLabelTTF labelWithString:[_organism imageSource] fontName:[[UIFont systemFontOfSize:12] fontName] fontSize:12];

一些图像来源包括土耳其字母。例如,在此 URL 中:

http://commons.wikimedia.org/wiki/File:Şahlûr-33.jpg

这在我的 iPad 应用程序中显示不正确;土耳其字母不见了。

如何创建一个可以处理上述 URL 中的文本的标签?


编辑:

没关系...问题在于从 Excel 导出。请参阅下面对答案的评论。此链接提供了一些附加信息:Excel to CSV with UTF8 encoding


附加编辑:

实际上,即使在我正确导出并验证我在 CSV 文件中有正确的 UTF-8(或者是 16 个?)字母之后,它仍然是一个问题。例如,这个字符串:

Dûrzan cîrano / CC BY-SA 3.0

显示如下:

不正确的土耳其字符

这个字符串:

Christian Mehlführer / CC-BY 2.5

显示如下:

在此处输入图像描述

它肯定在导入时处理不当,CCLOG生成以下内容:

Photo Credit: Dûrzan cîrano / CC BY-SA 3.0

更多信息:

导入后,我将以下值作为字符串存储在数组中:

"Christian Mehlf\U00c3\U00bchrer / CC-BY 2.5"

Wikipedia 说 UTF-8 值ü(以十六进制表示)是C3 BC. 看起来 c3bc 在那里,但被屏蔽为\U00c3\U00bc.

有什么办法可以正确转换吗?还是在 CSV 导入级别有什么根本性的问题?


解决方案如下。

4

2 回答 2

1

有几个问题:

  1. Mac 上的 Excel 无法正确导出 UTF-8。我使用的解决方案是将数据粘贴到 Google 电子表格中并从那里导出。更多信息:Excel to CSV with UTF8 encoding

  2. 我意识到,一旦我在 CSV 文件中有正确的数据,我就会使用不正确的设置导入它。我正在使用parseCSV并且需要_encoding-init方法中设置为NSUTF8StringEncoding而不是默认的NSISOLatin1StringEncoding.

于 2013-04-30T15:53:55.193 回答
0

如果你试试这个:

[CCLabelTTF labelWithString:[[_organism imageSource] stringByUnescapingHTML] fontName:[[UIFont systemFontOfSize:12] fontName] fontSize:12];

它可能会更好。我怀疑您的 url 字符串是转义的 HTML。

于 2013-04-30T03:31:11.630 回答