开发者

diffrent between NSLog and -print description- with NSString and UTF-8

开发者 https://www.devze.com 2023-03-17 14:49 出处:网络
I\'m confused. I\'m parsing json string. Before parsing, I check what is the content of the NSString. In Xode4:

I'm confused. I'm parsing json string.

Before parsing, I check what is the content of the NSString.

In Xode4: When I click on the NSString variable "print description" The console show the value as \u434 \u433 format of the UTF-8

When I call NSLog("%@",content) the console show the "readble" character o开发者_Python百科f the UTF-8 encoding.

Why is this different? How can I know that the string I got to parse is 100% UTF-8 ?

Thanks.


If you can see the Cyrillic characters you're looking for, rather than the escapes, through any method, then you're working with a UTF-8 string.

The "-description" method is not what you want to use here. It's more likely to show escaped characters; in particular, any time you store a value in a property list item like an NSArray or NSDictionary, its -description will generally escape any characters other than plain ASCII.

NSLog is a more reliable guide, because it doesn't use -description. If it's showing up in NSLog, it's probably just fine.

If you want to be absolutely sure your string is properly encoded UTF-8, the best way to test it is to display it. Create a text interface element (an NSTextField or UITextField) in your user interface, wire it up, and set your string as the value. If it displays there, it is properly formatted.

Short version: if it shows up in the debugger as escaped characters, it doesn't necessarily mean it's not UTF8. If it's showing up anywhere (including NSLog) with the proper characters, it's probably in the proper encoding. If you want to be sure, set up a test interface element and see how it looks there.

0

精彩评论

暂无评论...
验证码 换一张
取 消