gpt4 book ai didi

ios - NSString的方法'getCString'对于阿拉伯文本返回false

转载 作者:行者123 更新时间:2023-12-01 17:57:28 28 4
gpt4 key购买 nike

我正在生成QR代码,如果文本仅是英文,则一切正常。当我想用一些阿拉伯文本生成QR码时,它在NSString的方法“getCString:maxLength:encoding:”处失败。

假设我有两个字符串:

NSString *englishText = @"Some text English";
NSString *englishArabicMixText = @"Some text بالعربي";

char strEng [[englishText length] + 1];
char strArb [[englishArabicMixText length] + 1];

1- [englishText getCString:strEng maxLength:[englishText length] + 1 encoding:NSUTF8StringEncoding];
2- [englishArabicMixText getCString:strArb maxLength:[englishArabicMixText length] + 1 encoding:NSUTF8StringEncoding];

在Case#1“getCString”处返回true并生成QR码,在Case#2处返回false并未能生成代码。
我应该怎么做,以便在case#2中它也应该返回true?谢谢

最佳答案

length返回Unicode字符数。您必须使用lengthOfBytesUsingEncoding:,它返回以给定编码存储接收器所需的字节数。

NSUInteger arbLength = [englishArabicMixText lengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1;
char strArb [arbLength];
[englishArabicMixText getCString:strArb maxLength:arbLength encoding:NSUTF8StringEncoding];

关于ios - NSString的方法'getCString'对于阿拉伯文本返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635759/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com