gpt4 book ai didi

ios - NSString 中的字符编码转为 unicode 字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:18 26 4
gpt4 key购买 nike

我有一个 NSString,它的 charactercode 是这样的:0x1F514。我想把这个 NSString 添加到另一个 NSString,但不是用它的字面值,而是隐藏在它后面的图标。在本例中是铃铛的表情符号。

我如何轻松地将此 NSString 转换为显示表情而不是字符代码?

最佳答案

像这样的事情会做:

NSString *c = @"0x1F514";

unsigned intVal;
NSScanner *scanner = [NSScanner scannerWithString:c];
[scanner scanHexInt:&intVal];

NSString *str = nil;
if (intVal > 0xFFFF) {
unsigned remainder = intVal - 0x10000;
unsigned topTenBits = (remainder >> 10) & 0x3FF;
unsigned botTenBits = (remainder >> 0) & 0x3FF;

unichar hi = topTenBits + 0xD800;
unichar lo = botTenBits + 0xDC00;
unichar unicodeChars[2] = {hi, lo};
str = [NSString stringWithCharacters:unicodeChars length:2];
} else {
unichar lo = (unichar)(intVal & 0xFFFF);
str = [NSString stringWithCharacters:&lo length:1];
}

NSLog(@"str = %@", str);

@"\u1f514" 不起作用的原因是因为那些 \u 值不能在 BMP 之外,即 >0xFFFF,即 >16 位.

因此,我的代码所做的是检查该场景并执行相关的 surrogate pair magic制作正确的字符串。

希望这正是您想要的并且有意义!

关于ios - NSString 中的字符编码转为 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12963067/

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