正常情况下,调试过程中使用NSlog打印信息时,显示的都是英文字符,但实际上,通过服务器返回的字符大部分是中文的,这时候显示的却是不容易看懂的unicode码,所以为了方便调试,需要进行转换,即直接显示中文,如示例图。

实现原理,重新NSDictionary、NSArray中的方法"- (NSString *)descriptionWithLocale:(id)locale",即创建NSDictionary、NSArray的类别:NSDictionary+Log、NSArray+Log。

代码内容:

#import "NSDictionary+Log.h"@implementation NSDictionary (Log)- (NSString *)descriptionWithLocale:(id)locale
{NSMutableString *string = [NSMutableString string];// 开头有个{[string appendString:@"{\n"];// 遍历所有的键值对[self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {[string appendFormat:@"\t%@", key];[string appendString:@" : "];[string appendFormat:@"%@,\n", obj];}];// 结尾有个}[string appendString:@"}"];// 查找最后一个逗号NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];if (range.location != NSNotFound){[string deleteCharactersInRange:range];}return string;
}@end
#import "NSArray+Log.h"@implementation NSArray (Log)- (NSString *)descriptionWithLocale:(id)locale
{NSMutableString *string = [NSMutableString string];// 开头有个[[string appendString:@"[\n"];// 遍历所有的元素[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {[string appendFormat:@"\t%@,\n", obj];}];// 结尾有个][string appendString:@"]"];// 查找最后一个逗号NSRange range = [string rangeOfString:@"," options:NSBackwardsSearch];if (range.location != NSNotFound){[string deleteCharactersInRange:range];}return string;
}@end

使用时,先导入类别的头文件,调用时还是按以前的NSLog写法,打印出来的就会正常显示中文了。

#import "NSDictionary+Log.h"
#import "NSArray+Log.h"

NSLog打印中文字符相关推荐

  1. php调试代码时var_dump( )打印中文字符时出现乱码解决方案

    php调试代码时var_dump( )打印中文字符时出现乱码解决方案 参考文章: (1)php调试代码时var_dump( )打印中文字符时出现乱码解决方案 (2)https://www.cnblog ...

  2. STM32在Keil中使用串口助手打印中文字符出现乱码问题

    问题 问题如下,中文字符显示乱码,但数字正常. 原因 通常这种在串口助手打印出现乱码情况: 无非是波特率设置错误,不对应.就像一个滴水的水龙头,水滴进一个循环开合的容器,双方速率不能很好匹配,一定会出 ...

  3. python能print中文吗_win10中文版,python的print不能打印中文字符?

    #!/usr/bin/env python # -*- coding: utf-8 -*- print "这里" 如果我不加第二行,python运行这个会告诉我 SyntaxErr ...

  4. STM32 在PC端串口助手上打印中文字符----printf()函数重定向

    前言 本博文基于STM32F103ZET6和MDK5.2.6和库函数V3.5.0开发: 本博文采用七星虫德飞莱开发板,USB-TTL电路,USART1和串口调试助手: 如有不足,多指教: 针对STM3 ...

  5. ios字典存bool_#iOS 打印中文字典,数组,控制台输出中文,并保持缩进格式

    为了方便调试我们经常需要在控制台打印数组/字典信息,但是如果含有中文,打印出来的就是一堆看不懂的信息(其实是Unicode编码),影响开发效率. 本文目标: 使用NSLog能打印中文字典/数组 在控制 ...

  6. iOS NSLog打印使用总结

    在iOS开发过程中,有很多调试方法,例如: 断点调试(普通断点.条件断点.全局断点)之外,NSLog是我们调试最常用的方法 常用的NSlog打印各种字符数据: NSLog(@"打印字符串:% ...

  7. 打印出所有的中文字符

    2019独角兽企业重金招聘Python工程师标准>>> 尝试打出所有的中文字符,中文字符的16进制范围是[u4e00-u9fa5]. public static String toS ...

  8. opencv-python 在图像上打印英文和中文字符

    1.安装方法: pip install opencv-python 2.利用putText方法来实现在图片的指定位置添加文字 putText(img,text,org,fontFace,fontSca ...

  9. c++ 把数字和中文字符分开_C语言中的字符常量与变量

    字符常量与变量   在这一节中,我们来讨论字符与字符串. 1. 字符常量   如果我想在屏幕上打印"HelloWorld".应该怎样做呢?大家应该很熟悉这个代码了. #includ ...

最新文章

  1. 【剑指offer-Java版】33把数组排成最小的数
  2. 计算机基础教育德育教学,【家庭教育论文】计算机基础教学的德育教育(共2650字)...
  3. 通过Nagios监控weblogic服务
  4. 牛客网暑期ACM多校训练营(第三场)H - Diff-prime Pairs
  5. 单机PC手动更改windows update 地址
  6. c语言.h文件怎么写,关于C语言中.h文件怎么书写?
  7. QML笔记-JavaScript在QML中的使用(直接调用和间接调用)
  8. define定义的函数如何引用_「C与指针心得」25.预处理器-宏函数
  9. Oracle学习总结(6)—— SQL注入技术
  10. C++ 中map容器
  11. iphone手机删除的照片怎么恢复
  12. 如何用C语言实现批量修改文件类型
  13. Intel 处理器型号数字和字母含义解析
  14. 视频分析代码douyin
  15. Mac平台安卓模拟器:网易MuMu mac中文免费版(支持12系统)
  16. oracle 查找序列号,Oracle 查找丢失数据序列号
  17. Vue开源框架-vue-element-admin-任务列表项目
  18. 入门学习duilib的要点
  19. 云南师范大学文理学院计算机科学与技术,2020-2021学年云南师范大学文理学院 “数据达人秀”专业文化月...
  20. layabox 打印_layaair-doc/Chinese/LayaNative/LayaDcc_Tool at master · layabox/layaair-doc · GitHub...

热门文章

  1. matlab 二值图像黑白颠倒,python matplotlib图像将黑白颠倒为defau
  2. 如何将android studio设置复位,将设置恢复到初始化
  3. React生命周期(包含新旧流程图对比)
  4. 安卓设置按钮选中状态
  5. 今天给大家介绍一个起名神器“苹果手机的随机取名功能”
  6. php桌面路径,xp桌面文件路径是什么
  7. linux启动postfix命令,使用Postfix命令管理详解
  8. Python——pyqt-auto-tool自动化小工具(源码)
  9. 膜拜大佬!Android面试真题解析火爆全网,完整PDF
  10. 使用虚拟磁盘文件创建虚拟机