gpt4 book ai didi

ios - 带有 unicode NSString 的 UILabel 文本

转载 作者:行者123 更新时间:2023-11-29 04:19:06 25 4
gpt4 key购买 nike

此代码正确显示为 Ecole,并带有 E 重音符号:

NSString *test = @"\u00c9cole";
cell.detailTextLabel.text = test;

但是当我从服务器获取以 Json 形式发送的字符串时,我没有看到带有重音符号的 E,而是看到了 unicode \u00c9

从服务器获取Json字符串的代码:

- (void) handleProfileDidDownload: (ASIHTTPRequest*) theRequest
{
NSMutableString *str = [[NSMutableString alloc] init];
[str setString:[theRequest responseString]];
[self preprocess:str]; //NSLog here shows str has the unicode characters \u00c9

}

- (void) preprocess: (NSMutableString*) str
{
[str replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [str length])];
[str replaceOccurrencesOfString:@"\"" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [str length])];
[str replaceOccurrencesOfString:@"\\/" withString:@"/" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [str length])];

}

现在如果我这样做了,

cell.detailTextLabel.text = str;

我听不懂 E 的重音,而是\u00c9

我做错了什么?

最佳答案

NSString *test = @"\u00c9cole";

由编译器转换为带重音的 E。

在 JSON 中,字符串\u00c9cole 是一个文字反斜杠-u-zero-zero-c-nine。

您可以通过转义反斜杠来获得相同的行为。

NSString *test2 = @"\\u00c9cole";

这会给你同样的坏结果,\u00c9cole。


要正确转义 JSON 字符串,请参阅 Using Objective C/Cocoa to unescape unicode characters, ie \u1234 .

我提供链接而不是答案,因为有三个不错的答案。您可以选择最适合您需求的一种。

关于ios - 带有 unicode NSString 的 UILabel 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13240620/

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