我的iOS应用程序中有一个基于wchar_t
数组的自定义C ++字符串类。我有一种方法将其转换为NSString
,如下所示:
NSString *str = [[[NSString alloc]initWithBytes:(const void *)mArray
length:sizeof(wchar_t) * mLength
encoding:NSUTF32LittleEndianStringEncoding]autorelease];
return str;
我有一个输入字符串包含一些中文字符(特别是新译本)的情况,initWithBytes
返回nil。 documentation中没有关于返回nil的方法的内容;这是错误的条件吗?有谁知道什么样的东西可能会让这个方法没有结果?
答案 0 :(得分:0)
事实证明,传入的wchar
数组有时会包含UTF-16字符,UTF-16会以不同方式编码多字节字符。如果initWithBytes
获取无效数据,则会返回nil
。