ios字串編碼轉換(utf-8 & gbk)[轉貼]

來源:互聯網
上載者:User

 

我們知道,使用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.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.