【问题标题】: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),它可能是在正确的编码中。如果您想确定,请设置一个测试界面元素并查看它的外观。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2016-09-12
    相关资源
    最近更新 更多