如果JSON数据中有中文,输出Unicode编码,无法识别解决办法
2016-08-06 09:58
507 查看
NSLog+NSArray
问题
如果JSON数据中有中文,输出的是经过Unicode编码的内容,无法识别.解决
定义NSArray和NSDictionary的分类,重写系统方法descriptionWithLocale,重写此方法不需要导入头文件.
descriptionWithLocale,当NSLog输出数组或字典时,系统会自动调用这个方法.
在
descriptionWithLocale方法中,遍历元素,并打印元素.
声明
#import <Foundation/Foundation.h> @interface NSArray (Log) @end @interface NSDictionary (Log) @end
实现
#import "NSArray+Log.h" @implementation NSArray (Log) /// 打印数组和字典时会自动调用这个方法,在分类中重写这个方法时,在使用时不需要导入头文件 - (NSString *)descriptionWithLocale:(id)locale { // 创建可变字符串 NSMutableString *stringM = [NSMutableString string]; // 拼接开头 [stringM appendString:@"(\n"]; // 遍历出元素,拼接中间的内容部分 [self enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { [stringM appendFormat:@"\t%@,\n",obj]; }]; // 拼接结尾 [stringM appendString:@")\n"]; return stringM; } @end @implementation NSDictionary (Log) - (NSString *)descriptionWithLocale:(id)locale { // 创建可变字符串 NSMutableString *stringM = [NSMutableString string]; // 拼接开头 [stringM appendString:@"{\n"]; // 遍历出元素,拼接中间的内容部分 [self enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { [stringM appendFormat:@"\t%@ = %@;\n",key,obj]; }]; // 拼接结尾 [stringM appendString:@"}\n"]; return stringM; } @end
提示 :
一个文件中其实是可以定义多个类的声明和实现的
使用 : 把这个文件放进工程中即可,今后无论打印数组还是字典,都可以看到原始的中文.不需要导入头文件.
相关文章推荐
- 在JavaScript中,如何判断数组是数组?
- 深入理解JS DOM事件机制
- js script加载
- 如何使用狐火浏览器调试js
- 用JS写的一个Ajax库(实例代码)
- JS 一个修改ul的小示例
- JS获取和修改元素样式的实例代码
- 记住markdown 简明语法 2分钟熟练
- 关于JavaScript数组,你所不知道的3件事
- JSON解析_JSONKit
- JSTL 、 OGNL 与 EL
- Electron-快速上手
- js延迟函数
- jstl c
- using JSTL
- js 设置回车事件
- js get 传参 汉字 乱码问题
- js set
- js date string parse
- 一篇文章教你学会使用ext js