【问题标题】:diffrent between NSLog and -print description- with NSString and UTF-8NSLog 和 -print description- 与 NSString 和 UTF-8 的区别
【发布时间】:2023-03-10 10:42:01
【问题描述】:
我很困惑。我正在解析 json 字符串。
在解析之前,我检查NSString的内容是什么。
在Xode4:
当我点击NSString 变量“打印描述”
控制台将值显示为\u434 \u433 UTF-8 格式
当我调用 NSLog("%@",content) 时,控制台会显示 UTF-8 编码的“可读”字符。
为什么会有所不同?我怎么知道我要解析的字符串是 100% UTF-8?
谢谢。
【问题讨论】:
标签:
objective-c
ios4
xcode4
nsstring
【解决方案1】:
如果您可以通过 any 方法看到您正在寻找的西里尔字符,而不是转义字符,那么您正在使用 UTF-8 字符串。
“-description”方法不是你想在这里使用的。更有可能显示转义字符;特别是,每当您将值存储在 NSArray 或 NSDictionary 等属性列表项中时,它的 -description 通常会转义除纯 ASCII 以外的任何字符。
NSLog 是一个更可靠的指南,因为它不使用 -description。如果它出现在 NSLog 中,那可能没问题。
如果你想绝对确定你的字符串是正确编码的 UTF-8,最好的测试方法是显示它。在您的用户界面中创建一个文本界面元素(NSTextField 或 UITextField),将其连接起来,并将您的字符串设置为值。如果它在那里显示,则它的格式正确。
短版:如果它在调试器中显示为转义字符,并不一定意味着它不是 UTF8。如果它以正确的字符出现在任何地方(包括 NSLog),它可能是在正确的编码中。如果您想确定,请设置一个测试界面元素并查看它的外观。