Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当给定包含汉字的wchar\t数组时,NSString initWithBytes返回nil 我在iOS应用程序中有一个自定义的C++字符串类,它是基于一个数组“ WCARGYT ”。我有一个方法将其转换为NSString,如下所示: NSString *str = [[[NSString alloc]initWithBytes:(const void *)mArray length:sizeof(wchar_t) * mLength encoding:NSUTF32LittleEndianStringEncoding]autorelease]; return str;_C++_Ios_Objective C_Nsstring_Wchar T - Fatal编程技术网

当给定包含汉字的wchar\t数组时,NSString initWithBytes返回nil 我在iOS应用程序中有一个自定义的C++字符串类,它是基于一个数组“ WCARGYT ”。我有一个方法将其转换为NSString,如下所示: NSString *str = [[[NSString alloc]initWithBytes:(const void *)mArray length:sizeof(wchar_t) * mLength encoding:NSUTF32LittleEndianStringEncoding]autorelease]; return str;

当给定包含汉字的wchar\t数组时,NSString initWithBytes返回nil 我在iOS应用程序中有一个自定义的C++字符串类,它是基于一个数组“ WCARGYT ”。我有一个方法将其转换为NSString,如下所示: NSString *str = [[[NSString alloc]initWithBytes:(const void *)mArray length:sizeof(wchar_t) * mLength encoding:NSUTF32LittleEndianStringEncoding]autorelease]; return str;,c++,ios,objective-c,nsstring,wchar-t,C++,Ios,Objective C,Nsstring,Wchar T,我有一个例子,输入字符串包含一些中文字符(特别是新譯本), 而initWithBytes返回nil。中没有关于返回nil的方法的任何信息;这是一种错误情况吗?有人知道什么样的事情可能会使该方法返回nil结果吗?事实证明,传入的wchar数组中有时包含UTF-16字符,UTF-16编码多字节yte字符不同。如果initWithBytes获取无效数据,它将返回nil您能给出一个独立的小示例吗?我已经用wchar\t*mArray=L测试了您的代码新譯本";没有问题。@MartinR-现在已经排序了。

我有一个例子,输入字符串包含一些中文字符(特别是新譯本), 而
initWithBytes
返回nil。中没有关于返回nil的方法的任何信息;这是一种错误情况吗?有人知道什么样的事情可能会使该方法返回nil结果吗?

事实证明,传入的
wchar
数组中有时包含UTF-16字符,UTF-16编码多字节yte字符不同。如果
initWithBytes
获取无效数据,它将返回
nil

您能给出一个独立的小示例吗?我已经用
wchar\t*mArray=L测试了您的代码新譯本";
没有问题。@MartinR-现在已经排序了。传入的
wchar
数组有时会添加UTF-16字符,而这两种编码处理多字节字符的方式不同。显然,如果
initWithBytes
获取无效数据,它会返回nil。我会在允许的情况下发布一个答案。@Mr.Jefferson:现在您可以了可以把它作为答案…@ FaimPARKAR。你是。完成。我强烈建议使用UTF-8,并且尽可能避免W查尔格。C和C++语言甚至不指定WHARCHETT使用什么编码,它可以是16或32位,它可以是BigeNead或LITTLE。