gpt4 book ai didi

ios - 如何在UIlabel 和UItextview 中显示emoji 和特殊字符?

转载 作者:可可西里 更新时间:2023-11-01 05:04:27 24 4
gpt4 key购买 nike

我正在尝试在各种项目中显示一个字符串,例如 UIlabel、UItextview、Uitextfield 等.....我正在尝试以这样的方式来做这件事

NSData *data1 = [title dataUsingEncoding:NSUTF8StringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data1 encoding:NSNonLossyASCIIStringEncoding];
label.text=goodvalue;

这有时对我有用,但有时它会为这样的字符串返回空值关于这个?

最佳答案

表情符号字符位于 unicode 平面 1 中,因此需要超过 16 位来表示一个代码点。因此,两种 UTF8 表示或一种 UTF32 表示。 Unicode 实际上是一个 21 位系统,对于平面 0 字符(基本上除了表情符号之外的所有字符)16 位就足够了,我们使用 16 位来获得。表情符号需要超过 16 位。

“Youtube\ud83d\ude27\ud83d\ude2e\ud83d\ude2f\ud83d”。无效,它是 utf16 unicode 转义字符串的一部分,最后一个 \ud83d 是表情符号字符的 1/2。

此外,为了创建带有转义字符“\”的文字字符串,转义字符必须转义:“\\”。

NSString *emojiEscaped = @"Youtube\\ud83d\\ude27\\ud83d\\ude2e\\ud83d\\ude2f";
NSData *emojiData = [emojiEscaped dataUsingEncoding:NSUTF8StringEncoding];
NSString *emojiString = [[NSString alloc] initWithData:emojiData encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"emojiString: %@", emojiString);

NSLog 输出:

emojiString: Youtube😧😮😯

emoji字符串也可以用utf32表示:

NSString *string = @"\U0001f627\U0001f62e\U0001f62f";
NSLog(@"string: %@", string);

NSLog 输出:

string1: 😧😮😯

关于ios - 如何在UIlabel 和UItextview 中显示emoji 和特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909856/

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