• 字符串编码转换 GBK utf8


    我们知道,使用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.
  • 相关阅读:
    转:单链表有环判断及其起始位置定位
    转:C++经典排序算法总结
    转:堆排序
    转载:C++快速排序
    转载:平衡二叉树(AVL Tree)
    设计模式原则
    适配器模式
    单例模式
    工厂模式
    Head First设计模式 装饰者模式
  • 原文地址:https://www.cnblogs.com/careerman/p/2681521.html
Copyright © 2020-2023  润新知