Reputation: 833
In my app I have to encode a string for Emoji using below code:
NSData *data = [StrToEncode dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Using above code when I encode ï
then get result \357
but I want Unicode \u00EF
.
Entered string:-
StrToEncode = "This ïs â ball"
Current output:-
text = "This \357s \342 ball"
Required output:-
text = "This \u00EFs \u00E2 ball"
Upvotes: 0
Views: 256
Reputation: 2153
Use NSUTF8StringEncoding instead of NSNonLossyASCIIStringEncoding
NSData *data = [StrToEncode dataUsingEncoding:NSUTF8StringEncoding];
NSString *text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Updated:unicode str printing
NSString * a = @"This ïs â ball";
NSMutableString * finalStr = [[NSMutableString alloc] initWithString:@""];
for (int i=0; i<a.length; i++) {
unichar ch = [a characterAtIndex:i];
int numVal = (int)ch;
if (numVal>'z') {
[finalStr appendString:[NSString stringWithFormat:@"\\u%@",[[NSString stringWithFormat:@"%04x", ch] uppercaseString]]];
}else{
[finalStr appendString:[NSString stringWithFormat:@"%c", ch] ];
}
}
NSLog(@"finalStr %@",finalStr);
Upvotes: 1