NSData to NSString encoding

I have an application that receives messages from server. Those messages may contain cyrillic characters. But when I transform received data into NSString I obtain only "\u041c\u0430\u043a" symbols instead of cyrrilic ones.

   NSData *responceData = ....;

   NSString* responceString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

How may I get correct symbols?

Answers


There's a much easier solution.

If your data has literal unicode escape sequences in it (that is, \u041c\0430\043a as pure ASCII characters, with no unicode escaping applied), then this is not the UTF-8 encoding of that string. You want NSNonLossyASCIIStringEncoding.

NSData *responseData = ....;

NSString* responseString = [[NSString alloc] initWithData:responseData encoding:NSNonLossyASCIIStringEncoding];

responseString will now be exactly what you expect.


Need Your Help

Css radial gradient, new syntax

html css css3 gradient radial-gradients

I had a perfectly valid (judging by the look) radial gradient :

How to store hash-like objects in a PostgreSQL database?

ruby-on-rails ruby-on-rails-3 postgresql hstore

First, a bit of info. My Rails app has a model called Neo which in turn has attributes observed_at, ra and dec.