处理json 时出现乱码 ,使用 utf-8 或者 base64 都不能解决,最后发现……
[@"中文1" dataUsingEncoding:NSUTF8StringEncoding]
或
[NSString stringWithCString:[@"中文1" UTF8String] encoding:NSUnicodeStringEncoding]
或
NSString *basePara = [Base64 stringByEncodingData:[value dataUsingEncoding:NSUTF8StringEncoding]];
源码中编码统一,但是Base64加密后的字符中出现“+”这样的特殊字符,HTTP传输时会转换成“2b%”进行传输,解析报文时,会出现部分中文乱码问题,解决办法是更换HTTP字符转换接口,将要添加到URL的字符串进行特殊处理,如果这些字符串含有 &, ? 这些特殊字符,用“%+ASCII”代替。
str=(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllcatorDefault,(CFStringRef)str,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);
NSString * str2 = [NSString stringWithFormat:@"content=%@",str];
捐助开发者
在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



谢谢您的赞助,我会做的更好!
本文详细介绍了在处理JSON数据时遇到中文乱码问题的解决方案,包括使用utf-8和base64编码的局限性,以及在HTTP传输中处理特殊字符如‘+’的方法。此外,提供了将特殊字符替换为‘%+ASCII’以避免乱码的技术细节。

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



