NSString是否支持非标准/非英文字符?

时间:2010-02-04 07:20:14

标签: cocoa localization nsstring

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

当我用'Calle Mare de Deu de'替换字符串'Calle MaredeDéude'时,它可以正常工作。问题是由'é'字符引起的。

NSString是否不支持此字符和其他特殊字符?

由于 迪皮卡乌达

1 个答案:

答案 0 :(得分:3)

  

异常发生NSPlaceholderString initwithstring:]雪上跳跃的nil参数和leapord异常发生,但警报没有发生。

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

你在那里传递的字符串是nil。这与字符串的编码无关,原因有两个:

  1. 没有字符串。 (如果您传递了一个字符串,则不会通过nil。)
  2. 字符串没有编码;它们只是字符串。编码可以使您从人类语言字符(字符串)到字节序列(在数据中)。
  3. 此外,如果您有一个要传递给initWithString:的字符串,则不需要使用initWithString:创建字符串,因为您已经拥有该字符串。如果您想复制它,您只需发送copy消息即可。

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

      

    仅仅由于'é',意味着我想知道NSString是否不支持'é'或任何其他字符

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