ios字符串编码转换(utf-8 & gbk)问题[参考]
来源:互联网 发布:代购app软件排行 编辑:程序博客网 时间:2024/06/06 18:12
前端部分来自参考资料: 我的地盘 CALL ME SING,STEVEN SING!!
我们知道,使用NSURLConnection的代理方法下载网页,存到一个NSData中,
NSMutableData *pageData;
[pageData appendData:data];
如果网页编码是UTF-8的,可以这么转换为字符串:
NSString *pageSource = [[NSString alloc] initWithData:pageData encoding:NSUTF8StringEncoding];
如果网页是gbk(或者gb2312),用UTF8转换的话,pageSource返回nil。这时需要使用gbk编码做转换,但是NSStringEncoding不含gbk,怎么办?用另一个方法处理一下:
NSStringEncoding gbkEncoding =
CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);NSString *pageSource = [[NSString alloc] initWithData:pageData encoding:gbkEncoding];
为什么可以这么处理?在NSString.h(按住command,双击NSStringEncoding即能查看),对NSStringEncoding的定义中,注释这么写着:
Note that in addition to the values explicitly listed below, NSStringEncoding supports encodings provided by CFString.
See CFStringEncodingExt.h for a list of these encodings.
See CFString.h for functions which convert between NSStringEncoding and CFStringEncoding.
========================================================================================
我要实现的是将我的ios端的数据通过php写的服务端写入到数据库中,由于要写入中文信息,我php端都是用的gbk编码,但是测试的时候数据库中写入的一直是乱码,也无法匹配中文。
后来发现是我ios端往php端发送数据是用的编码不对。我们知道在ios中设置data的编码时,NSStringEncoding默认是没有gbk这些编码的,如图:
所以只能自己定义一个NSStringEncoding对象来转码。
按照上面的方法将代码修改如下:
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
[request setHTTPBody:[body dataUsingEncoding:gbkEncoding]];
这样往服务器端发送的数据就是gbk编码的了,数据库中写入的也是中文了,也能正确匹配中文了。
0 0
- ios字符串编码转换(utf-8 & gbk)问题[参考]
- ios字符串编码转换(utf-8 & gbk)[转贴]
- ios 字符串编码转换(utf-8 & gbk)问题
- 【转】ios字符串编码转换(utf-8 & gbk)问题
- iOS字符串GBK编码转UTF-8
- PHP转换编码问题GBK/UTF-8
- PHP转换编码问题GBK/UTF-8
- 字符串编码格式相互转换Unicode --UTF-8 -- GBK
- iOS之字符串编码GBK转UTF-8
- 字符串编码问题(Ascii、Unicode、UCS-2、GBK、UTF-8)
- 字符串编码转换(GBK) NSString, char, NSData相互转化 从 GBK 转到 UTF-8
- MySQL GBK→UTF-8编码转换
- iconv转换编码格式 gbk utf-8
- 编码转换:UTF-8 BOM to GBK
- linux C gbk utf-8编码转换
- linux C gbk utf-8编码转换
- linux C gbk utf-8编码转换
- gbk转utf-8 iconv 编码转换
- UISearchBar学习【转】
- ios手势学习笔记
- iPhone开发过程中检测多次Release问题[转]
- 关于error:Cannot assign to \'self\' outside of a method in the init family
- C#学习笔记2
- ios字符串编码转换(utf-8 & gbk)问题[参考]
- 重写UIAlertView
- void * & __bridge & unsafe_unretained
- IPone上面类似ipad上面的UIPopoverController实现
- ios中null nil Nil NSNull的区别
- 开源免费天气预报接口API以及全国所有地区代码!
- iOS 开发者必知的 75 个工具
- 信息图:iOS 7开发者需要知道的事
- Block学习