首页 > 解决方案 > 为什么NSLog在记录汉字时会输出乱码?

问题描述

NSLog 显示未知乱码,代码如下:

NSString *sampleStr = @"你好";
NSLog(sampleStr);

但它输出:

在此处输入图像描述

当我将上述字符发送到后端时,后端显示

?????

我该如何解决这个问题?

标签: objective-c

解决方案


具体是什么问题?NSLogging还是后端?

如果是前者,首先应该使用字符串格式化来输出字符串,而不是NSString直接传递对象。这必须为您提供所需的输出:

NSLog(@"%@", sampleStr);

不过,我在 Xcode 13.1 中尝试了您的代码而没有进行任何更改,但它仍然给了我想要的输出。因此,问题可能出在其他地方,而不是您的NSLog

NSString *sampleStr = @"你好";

// "Format string is not a string literal (potentially insecure)"
NSLog(sampleStr); // 你好

NSLog(@"%@", sampleStr); // 你好

如果您将后端作为您的问题,这取决于您如何将其“发送”到后端(在正文中作为数据,作为 HTTP 参数作为文本,带/不带转义等)以及您的后端代码是否支持您的输入提供。为了更准确地回答这个问题,我们应该有更多的信息。


推荐阅读