0

i am not able to decode this encoded string to its unicode value:- %5Cu20A8

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

I have tried NSASCIIStringEncoding and NSUnicodeStringEncoding as well but it doesnt work.

Ashish P
  • 1,463
  • 1
  • 20
  • 29

2 Answers2

0

This Worked:-

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

NSData *unicodedStringData = [unicodedString dataUsingEncoding:NSUTF8StringEncoding];

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

Just removing percent escapes before decoding the string.

Ashish P
  • 1,463
  • 1
  • 20
  • 29
0

Just improved Ashish's answer

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

NSData *unicodedStringData = [unicodedString dataUsingEncoding:NSUTF8StringEncoding];

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

Output - ₨

Abhishek Jain
  • 4,557
  • 2
  • 32
  • 31