【问题标题】:Does NSString Support Non-Standard/Non-English characters?NSString 是否支持非标准/非英文字符?
【发布时间】:2010-02-04 07:20:14
【问题描述】:

我正在使用 xml 解析器来填充数组。此字符串:'Calle Mare de Déu de' 在 [NSPlaceholderString initwithstring:] 处生成异常。在 Snow Leopard (10.6) 上它报告一个 nil 参数,而在 Leopard (10.5) 上它抛出一个异常但没有报告错误。

当我将字符串 'Calle Mare de Déu de' 替换为 'Calle Mare de Deu de' 时,它可以正常工作。问题是由“é”字符引起的。

NSString 不支持这个和其他特殊字符吗?

谢谢 迪皮卡

【问题讨论】:

  • 这个问题很难理解,能不能再澄清一下?
  • 主要问题已经很清楚了(我认为提问者是在挑战他/她的英语水平),但有一些细节我想知道,例如(1)是否“ Calle Mare de Déu de”来自数据库或 XML 解析器,(2) 提问者使用什么 API,(3) “convert[ing] it into Array” 是什么意思。

标签: cocoa localization nsstring


【解决方案1】:

异常发生 NSPlaceholderString initwithstring:] nil 参数在雪闰和闰异常发生但警报没有出现。

您收到一个异常,告诉您传递了 nil 参数,因为您传递了 nil 参数。

您传递的字符串是nil。这与字符串的编码无关,原因有二:

  1. 没有字符串。 (如果你传递了一个字符串,你就不会传递nil。)
  2. 字符串没有编码;它们只是字符串。编码将您从人类语言字符(在字符串中)转换为字节序列(在数据中)。

此外,如果您有要传递给initWithString: 的字符串,则无需使用initWithString: 创建字符串,因为您已经有了该字符串。如果你想复制它,你可以简单地给它发送copy 消息。

我们不知道您已经拥有什么,这非常重要。请编辑您的问题以包含从数据库或 XML 解析器中获取“字符串”并将其传递给 initWithString: 的代码。

仅仅是因为'é',意思是我想知道NSString是否不支持'é'或任何其他字符

NSString 支持 Unicode 中的所有字符。实际上,这意味着所有这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多