when i try to convert form utf-8 string to NSString like so:
NSString *s = [NSString stringWithUTF8String:\"\\U0627\\U0644\\U0641\\U0631\\U0646\"];
NSLog(@\"%@\"
incomplete universal character name means that you are missing part of one of the utf8 character that you are trying to write.
UTF8 spans from 1 byte symbols to 4 byte symbols, probably one of yours is longer that you wrote and you are missing 1 byte or such..
\U and \u are not the same thing. The \U escape expects 8 (hex) digits instead of 4.
This should work:
NSString *s = [NSString stringWithUTF8String:"\u0627\u0644\u0641\u0631\u0646"];