【问题标题】:How do I prevent Turkish letters from dropping when using UIFont in cocos2d?在 cocos2d 中使用 UIFont 时如何防止土耳其语字母掉线?
【发布时间】:2013-04-30 03:25:14
【问题描述】:

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

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 导出。请参阅下面答案中的 cmets。此链接提供了一些附加信息: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 导入级别有什么根本性的问题?


解决方法如下。

【问题讨论】:

    标签: internationalization cocos2d-iphone uikit turkish


    【解决方案1】:

    有几个问题:

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

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

    【讨论】:

      【解决方案2】:

      如果你试试这个:

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

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

      【讨论】:

      • stringByUnescapingHTML 在 iOS 上可用吗?
      • 实际上 - 没关系...我从 Excel 导出的 .csv 文件中导入字符串。字符在 Excel 中是正确的,但在导出后在 .csv 文件中不正确。因此,该问题与 cocos2d 无关。不过,我不确定如何解决 Excel 的导出问题。谢谢。
      • csv 是一种文本格式,除非您可以指示 excel 以 utf16 格式导出(不可能?)您需要使用不同的方法,也许 openoffice 可以做到这一点。还要检查这个:stackoverflow.com/questions/13019620/…
      • @LearnCocos2D 感谢您的链接。听起来将 Excel 文件导入 Google 电子表格并从那里导出为 CSV 也可能有效。这个问题是相关的:stackoverflow.com/questions/4221176/…
      • @LearnCocos2D 我在原始问题的底部提供了更多信息。还有什么想法吗?谢谢。
      猜你喜欢
      • 2014-11-20
      • 2013-11-04
      • 2014-08-09
      • 2013-10-02
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      相关资源
      最近更新 更多