如何在UILabel iOS

时间:2018-05-17 07:28:09

标签: ios objective-c unicode uilabel nsdictionary

我正在尝试实现一个应用程序,我希望以西班牙语格式显示一些文本。例如,我想显示“España”,但在我的标签中显示“Espa√ɬ±a”,并且它还会更改其他一些文本的文本。

如何摆脱这些。如果有人可以提供帮助。感谢。

编辑:当我收到我的回复时,它会记录下面的结果

消息=(                         “埃斯帕\ U221a \ U00c9 \ U00ac \ U00b1a:1.3 \ U221a \ U00c7 \ U00ac \ U00a2 /分钟”                     );

但是当我根据Dictionary中的键提取值时,它会显示

Espa√ɬ±一个:1.3√Ǭ¢/分钟

这意味着当我从字典中获取值时,它无法正确解码。

如何解决这个问题。有什么想法..?

1 个答案:

答案 0 :(得分:0)

首先使用NSData编码将响应字符串转换为NSUTF8StringEncoding,然后再将相同的数据转换为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ña