我正在执行以下操作来创建一个标签,我将其用作照片归属的一部分:
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应用中显示不正确;土耳其字母丢失了。
如何创建一个标签,该标签将使用上述网址中的文字?
修改
没关系......问题在于从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"
维基百科说,ü
的UTF-8值(十六进制)为C3 BC
。看起来c3bc在那里,但被屏蔽为\U00c3\U00bc
。
有没有办法正确转换?或者是CSV导入级别的根本原因?
解决方案如下。
答案 0 :(得分:1)
有几个问题:
Mac上的Excel无法正确导出UTF-8。我使用的解决方案是将数据粘贴到Google电子表格中并从那里导出。更多信息:Excel to CSV with UTF8 encoding
我意识到,一旦我在CSV文件中获得了正确的数据,我就会使用不正确的设置导入它。我正在使用parseCSV,需要将_encoding
方法中的-init
设置为NSUTF8StringEncoding
,而不是默认值NSISOLatin1StringEncoding
。
答案 1 :(得分:0)
如果你试试这个:
[CCLabelTTF labelWithString:[[_organism imageSource] stringByUnescapingHTML] fontName:[[UIFont systemFontOfSize:12] fontName] fontSize:12];
它可能会更好。我怀疑你的url字符串是转义HTML。