0

我的 iOS 应用程序中有一个自定义 C++ 字符串类,它基于wchar_t. 我有一种方法可以将其转换为NSString如下所示:

NSString *str = [[[NSString alloc]initWithBytes:(const void *)mArray
      length:sizeof(wchar_t) * mLength 
      encoding:NSUTF32LittleEndianStringEncoding]autorelease];
return str;

我有一个案例,输入字符串包含一些汉字(特别是新译本),并initWithBytes返回 nil。文档中没有关于返回 nil 的方法;这是错误情况吗?有谁知道什么样的事情可能会使该方法返回零结果?

4

1 回答 1

0

事实证明,wchar传入的数组有时会包含 UTF-16 字符,而 UTF-16 对多字节字符的编码方式不同。如果initWithBytes获取无效数据,则返回nil.

于 2014-02-12T16:22:09.390 回答