无法解码编码的unicode字符串

时间:2017-07-27 12:47:46

标签: ios objective-c iphone ipad decoding

我无法将此编码字符串解码为其unicode值: - %5Cu20A8

NSData *unicodedStringData =
    [@"%5Cu20A8" dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
    NSString *stringValue =
    [[NSString alloc] initWithData:unicodedStringData encoding:NSUTF8StringEncoding];

我也尝试了NSASCIIStringEncodingNSUnicodeStringEncoding,但它不起作用。

2 个答案:

答案 0 :(得分:0)

这项工作: -

NSString *unicodedString = [[dictMain objectForKey:@"currency"] stringByRemovingPercentEncoding];

NSData *unicodedStringData = [unicodedString dataUsingEncoding:NSUTF8StringEncoding];

NSString *currencyUnicode = [[NSString alloc] initWithData:unicodedStringData encoding:NSNonLossyASCIIStringEncoding];

在解码字符串之前删除百分比转义。

答案 1 :(得分:0)

刚刚改进了Ashish的回答

NSString *unicodedString = [@"%5Cu20A8" stringByRemovingPercentEncoding];

NSData *unicodedStringData = [unicodedString dataUsingEncoding:NSUTF8StringEncoding];

NSString *currencyUnicode = [[NSString alloc] initWithData:unicodedStringData encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"%@",currencyUnicode);

输出 - ₨