如何在 UILabel iOS 中显示特殊字符
Posted
技术标签:
【中文标题】如何在 UILabel iOS 中显示特殊字符【英文标题】:How to show special character in UILabel iOS 【发布时间】:2018-05-17 07:28:08 【问题描述】:我正在尝试实现一个应用程序,我想在其中显示一些西班牙语格式的文本。例如,我想显示“España”,但在我的标签中显示“Espa√ɬ±a”,并且它还更改了其他一些文本的文本。
如何摆脱这些。如果有人可以帮忙。谢谢。
编辑:当我收到回复时,它会记录以下结果
消息 = ( "Espa\U221a\U00c9\U00ac\U00b1a:1.3\U221a\U00c7\U00ac\U00a2/min" );
但是当我根据字典中的键提取值时,它会显示
Espa√ɬ±a:1.3√Ǭ¢/分钟
这意味着当我从字典中获取值时,它无法正确解码。
如何解决这个问题。任何想法..?
【问题讨论】:
“España”显示在我的标签上。请添加您的代码。 它正在运行,请分享您的代码 “España”直接显示在我的标签中。但是当它来自响应时,它没有正确显示。有什么办法可以将 html unicode 解析为 ios unicode。? @Tann 添加解析响应以获取文本的代码 我将响应器作为字典。这是我的代码 => NSString *message = [[[[response objectForKey:@"key1"]objectAtIndex:0] objectForKey:@"key2"] objectAtIndex:0];在这个消息字符串中,我得到了值。 【参考方案1】:首先使用NSUTF8StringEncoding
编码将您的响应字符串转换为NSData
,然后再次将相同的数据转换为finalString,如下所示。
NSString *string = @"España"; //Your response String goes here
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSString *finalString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
lblTemp.text = finalString;
更新 1
我认为您的回复有一些错误,请参见下文
NSString *string = @"Nu\\u0161a Florjan\\u010di\\u010d";
NSString *finalString = [NSString
stringWithCString:[string cStringUsingEncoding:NSUTF8StringEncoding]
encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"finalString = %@", finalString);
以上代码的输出是,
finalString = Nuša Florjančič
更新 2
如果您想要输出类似 "España" 的字符串,您想要的响应应该是 "Espa\u00F1a",请在下方查找,
NSString *string = @"Espa\\u00F1a";
NSString *finalString = [NSString
stringWithCString:[string cStringUsingEncoding:NSUTF8StringEncoding]
encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"%@",finalString);
输出是西班牙
【讨论】:
回复可能有其他问题,完美解决 我收到了这个 => "Espa\U221a\U00c9\U00ac\U00b1a" 在我的回复中。 给我一些时间,让我试试 NSString *string = @"Espa\U221a\U00c9\U00ac\U00b1a";它给了我错误 - 不完整的通用字符名称 应该是小\u221a,小u以上是关于如何在 UILabel iOS 中显示特殊字符的主要内容,如果未能解决你的问题,请参考以下文章