//解决NSDitionary中文乱码问题//解决NSArray中文乱码问题
//
// NSDictionary+Unicode.h
#import <Foundation/Foundation.h>
@interface NSDictionary (Unicode)
@end
============================================
//
// NSDictionary+Unicode.m
#import "NSDictionary+Unicode.h"
@implementation NSDictionary (Unicode)
-(NSString*)my_description{
NSString *desc=[self my_description];
desc = [NSString stringWithCString:[desc cStringUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding];
return desc;
}
//解决NSDitionary中文乱码问题
-(void)logDic:(NSMutableDictionary *)dic
{
NSString *tempStr1 = [[dic description] stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];
NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
NSString *str = [NSPropertyListSerialization propertyListFromData:tempData mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL];
NSLog(@"dic:%@",str);
}
@end
===============================================================
//
// NSArray+Coding.h
// 39-周屹-OC考试
#import <Foundation/Foundation.h>
@interface NSArray (Coding)
@end
=========================================================
//
// NSArray+Coding.m
#import "NSArray+Coding.h"
@implementation NSArray (Coding)
//解决NSArray中文乱码问题
- (NSString *)descriptionWithLocale:(id)locale{
NSMutableString *strM=[NSMutableString string];
[strM appendString:@"(\n"];
for (id obj in self) {
[strM appendFormat:@"\t%@,\n",obj];
}
[strM appendString:@")"];
return strM;
}
@end
该博客介绍了如何在Objective-C中解决NSDictionar和NSArray中文乱码的问题。提供了两个类别扩展,一个是NSDictionary+Unicode,包含了`my_description`方法将字典内容转换为非丢失ASCII编码,以及`logDic:`方法用于打印含有中文的字典。另一个类别扩展是NSArray+Coding,重写了`descriptionWithLocale:`方法,确保数组在打印时中文字符正确显示。
1074

被折叠的 条评论
为什么被折叠?



