国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

詳解iPhone應用程序中非UTF-8里的XML

移動開發 iOS
本文介紹的是淺談iPhone應用程序中非UTF-8里的XML,詳細的介紹了UTF-8中的XML,先來看內容。

iPhone應用程序中非UTF-8里的XML是本文要介紹的內容,主要介紹了iphone里的UTF-8XML應用,先來看詳細內容。做iPhone的網絡應用,處理XML是家常便飯,NSXMLParser用起來還是得心應手的。不過這個東西,處理非UTF-8,會解析失敗。這篇文章就是想和大家一起分享一些這方面開發的新的。

我們在某個RSS地址,可以得到下面這樣的XML文件。我這里只是截取一段,

  1. <?xml version="1.0" encoding="big5"?> 
  2. <rss version="2.0"> 
  3. <channel> 
  4. <title>RTHK On Internet - 即 時 新 聞</title> 
  5. <link><![CDATA[http://www.rthk.org.hk/rthk/news/expressnews/]]></link> 
  6. <description>RTHK On Internet - 即 時 新 聞</description> 
  7. <pubDate>Sun, 11 Oct 2009 15:02:02 +0800</pubDate> 
  8. <item> 
  9. <title><![CDATA[&#34910;生署要求浸會醫院4周內 就產婦死亡個案提交報告   ]]></title> 
  10. <link><![CDATA[http://www.rthk.org.hk/rthk/news/expressnews/20091011/news_20091011_55_618483.htm]]></link> 
  11. <description><![CDATA[ 

&#34910;生署昨晚已經收到浸會醫院通知,有一宗產婦死亡個案,浸會醫院需要在4星期內向&#34910;生署提交報告,案件亦交由死因庭跟進。

&#34910;生署數字顯示,由07年至今年8月,共接獲97宗私家醫院醫療事故的通報。去年發生的事故中,最多的是進行手術或介入程序期間出現併發癥,其次還有孕婦及產婦死亡,或與孕婦在分娩過程中,生產時,或產後出現嚴重併發癥;部份則包括初生嬰兒出現死亡或嚴重受傷;錯誤為病人或身體部位進行外科或介入手術程序等。

  1. ]]></description> 
  2. <pubDate> 
  3. Sun, 11 Oct 2009 14:50:46 +0800  
  4. </pubDate> 
  5. </item> 
  6. </channel> 
  7. </rss> 

這是一個很常用的RSS返回的XML,是繁體中文的,編碼格式是big5。說編碼格式是big5有兩層意思:

(1)網絡流返回的NSData是big5編碼的。所以這樣的NSData送給NSXMLParser是不能正確解析的。

(2)第一句話指明了XML文件也是用big5編碼的。

對應于上面兩個問題,我的解決思路是:

(1)把Big5編碼的NSData轉換成UTF-8編碼的NSData

(2)將第一行<?xml version="1.0" encoding="big5"?>轉換成<?xml version="1.0" encoding="utf-8"?>

第二個轉換不難,只要我們有NSString對象。第一個轉換要用到CFStringRef,代碼如下:

  1. CFStringRef big5Str = CFStringCreateWithBytes(NULL,     
  2.                                     [inData bytes],     
  3.                                     [inData length],     
  4.                                     kCFStringEncodingBig5_HKSCS_1999,     
  5.                                     false); //[A]     
  6. if (NULL == big5Str) {     
  7.         return nil;     
  8. }     
  9. else {     
  10.     NSString *big5NSString = (NSString *)big5Str;     
  11.     NSString *utf8NSString = [big5NSString stringByReplacingOccurrencesOfString:@"<?xml version=\"1.0\" encoding=\"big5\"?>"      
  12.                            withString:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"]; //[B]     
  13.     return [utf8NSString dataUsingEncoding:NSUTF8StringEncoding]; //[C]     
  14. }    
  15.  
  16. CFStringRef big5Str = CFStringCreateWithBytes(NULL,  
  17.          [inData bytes],  
  18.          [inData length],  
  19.          kCFStringEncodingBig5_HKSCS_1999,  
  20.          false); //[A]  
  21. if (NULL == big5Str) {  
  22.         return nil;  
  23. }  
  24. else {  
  25.  NSString *big5NSString = (NSString *)big5Str;  
  26.  NSString *utf8NSString = [big5NSString stringByReplacingOccurrencesOfString:@"<?xml version=\"1.0\" encoding=\"big5\"?>"   
  27.          withString:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"]; //[B]  
  28.  return [utf8NSString dataUsingEncoding:NSUTF8StringEncoding]; //[C]  
  29. }  

思路就是先把NSData轉成CFStringRef的對象[A], 然后這個對象再轉成UTF-8的NSData [C],這就解決了問題[1]

中間的[B]就解決了問題[2]。這里要注意兩個問題:

(1)如果你的XML編碼是GBK,或者GB23120或者其他的,kCFStringEncodingBig5_HKSCS_1999要換成你對應的編碼方式。

(2)如果你的XML編碼也是big5的,也許kCFStringEncodingBig5_HKSCS_1999并不適合你的應用。因為對應big5的編碼常量還有兩種,他們是:

  1. kCFStringEncodingBig5_E  
  2. kCFStringEncodingBig5。 

這個你可以查閱幫助文檔,然后一個個試。

然后把return的NSData送到NSXMLParser,就可以正確解析了。可是還沒有結束,大家仔細看看XML文件里面還有&#34910這樣的東西。這個是繁體中文”衛“字,我們如果不處理這個東西,顯示給用戶看得就是&#34910,這顯然是不行的。這個其實也好辦,只需要用下面這句話就可以把一個number轉成NSString了:

  1. [NSString stringWithFormat:@"%C", number] 

這個number就是34910,是一個整數,十進制的整數(不是十六進制的)。到這里,整個處理過程就OK了,我們就可以正確得到Big5的RSS新聞了。因為這是一個客戶項目,不過我可以給各小截圖大家看看,如圖所示:

詳解iPhone應用程序中非UTF-8里的XML

小結:詳解iPhone應用程序中非UTF-8里的XML的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-26 09:41:23

iPhone xcode Mac OS X

2011-07-19 14:36:32

iPhone

2011-07-26 16:33:56

iPhone Delegate

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-08-10 16:50:10

iPhone生命周期

2011-08-10 16:57:15

iPhone事件程序包

2011-08-25 09:43:51

UTF-8中文man

2021-05-12 07:43:02

LinuxUnicodeUTF-8

2020-09-21 08:56:00

GolangUnicode編碼

2011-03-07 12:31:54

Filezilla

2016-12-13 10:13:18

PHPUTF-8實踐

2012-05-24 15:49:35

HTML5

2011-08-10 09:31:33

開發iPhone應用程

2011-07-26 10:09:08

iPhone 多語言 國際化

2010-08-27 10:41:41

iPhone核心應用程序

2011-07-20 15:58:58

iPhone 應用程序 生命周期

2011-07-27 17:30:40

iPhone Locate 定位

2011-08-12 14:54:45

iPhone委托

2011-07-21 15:56:32

iPhone 截屏

2011-08-05 13:49:53

iPhone 應用 開發
點贊
收藏

51CTO技術棧公眾號

国产天堂在线观看| 中文在线综合| 一区二区三区在线免费播放| 视频一区在线免费观看| 久草成人在线| 午夜剧场成人观在线视频免费观看| 欧美亚洲系列| 91精品国产手机| 国产精品ⅴa有声小说| 亚洲午夜免费电影| 成人亚洲一区二区三区| 国产日韩成人精品| 久久久久久久久久久福利| 国产成人午夜视频| 欧美日韩视频免费| 岛国一区二区三区| 97超碰在线人人| 国产在线一区二区| 一区二区三区四区| 免费欧美在线视频| 日韩一本精品| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩在线精品| 日韩国产在线观看一区| 视频二区一区| 国产一区二区三区在线观看精品| 在线观看成人一级片| 日韩不卡一区二区三区| 欧美极品色图| 久久er精品视频| 成人免费看片视频在线观看| 极品美女销魂一区二区三区免费| 制服国产精品| 粉嫩13p一区二区三区| 青青草精品视频在线| 91丝袜呻吟高潮美腿白嫩在线观看| 精品人妻大屁股白浆无码| www.欧美日韩国产在线| 大香煮伊手机一区| 亚洲欧美日韩人成在线播放| 啊灬啊灬啊灬啊灬高潮在线看| 亚洲电影在线免费观看| 岛国大片在线观看| 亚洲国产成人精品女人久久久| 悠悠资源网亚洲青| www.美女亚洲精品| 精品国内亚洲2022精品成人| 国产精品www色诱视频| 欧美激情1区| 一本一生久久a久久精品综合蜜 | 亚洲激情中文| 久久久久久99| 丰满白嫩尤物一区二区| 天天爽人人爽夜夜爽| 亚洲伊人色欲综合网| av在线电影观看| 国产一区二区三区在线播放免费观看 | 美国成人毛片| 精品av综合导航| 国产精品视频一区二区三区综合| 国产成人短视频| 日产欧产美韩系列久久99| 干日本少妇首页| 富二代精品短视频| ririsao久久精品一区| 欧美成人午夜激情视频| 婷婷久久一区| www.好吊操| 色综合久久久久综合体桃花网| jizz内谢中国亚洲jizz| 国产精品亚洲第一区| 国产一区福利在线| 丝袜视频国产在线播放| 日韩中文理论片| 亚洲国产婷婷| 国产视频一区二区视频| 欧美视频在线播放| 6080亚洲理论片在线观看| 国产一区国产精品| 国产无人区一区二区三区| yiren22综合网成人| 欧美激情视频网址| 视频一区在线播放| 国产精品视频一区二区图片| 亚洲国产日韩欧美在线99| 欧美日韩中文一区二区| 日韩成人三级视频| 7777精品伊人久久久大香线蕉超级流畅| 亚洲精品国产九九九| 亚洲成人av动漫| 日韩欧美极品在线观看| 日韩欧美中文字幕一区二区三区 | 欧美一区二区精品久久911| 国产精品毛片视频| 日韩人妻精品一区二区三区| 福利一区视频在线观看| 99a精品视频在线观看| 中文字幕日韩精品久久| 欧美日韩在线免费| 少妇高潮一区二区三区| japanese在线播放| 日韩亚洲电影在线| 久久精品影视| 在线视频日韩一区| 亚洲欧洲国产伦综合| 影音先锋国产精品| 一二三区高清| 久久久久久久av| 东方aⅴ免费观看久久av| 在线中文字幕视频观看| 97人人模人人爽视频一区二区| 国产精品电影一区二区三区| 欧美日韩伦理一区二区| 久久久一二三四| 欧美一区二区三区系列电影| 91成人网在线观看| 自拍av在线| 国产精品偷伦视频免费观看国产| 久久久久久久久伊人| 欧美亚洲福利| 野外做受又硬又粗又大视频√| 精品国产一区二区三区四区四| 亚洲午夜av| jizz日韩| 99热最新在线| 在线观看一区二区精品视频| 四虎8848精品成人免费网站| 日本调教视频在线观看| 久久69精品久久久久久久电影好| caoporen国产精品视频| 欧美性suv| 天天爱天天做天天操| 亚洲国产成人精品久久| 久久天堂精品| √天堂8资源中文在线| 亚洲精品中文字幕在线 | 欧美老女人xx| 国产午夜亚洲精品理论片色戒 | 欧美gayvideo| 污导航在线观看| 亚洲japanese制服美女| 在线观看亚洲成人| 欧美专区一区二区三区| 天堂亚洲精品| 波多野结衣与黑人| 色综合老司机第九色激情| 国产精品青草综合久久久久99| 欧美三级午夜理伦三级小说| 狠狠干五月天| 亚洲综合中文字幕在线观看| 欧美日韩高清不卡| 老司机免费视频一区二区三区| 视频二区不卡| 在线免费av播放| 国产精品久久久久久亚洲影视 | 成人av网页| 日韩免费高清在线观看| 亚洲第一综合色| 最新日韩在线| 成人观看网址| 成人在线免费在线观看| 国产成人精品在线视频| 色哟哟一区二区三区| 国产一区二区高清| zzzwww在线看片免费| 国产中文字幕视频在线观看| 欧美激情视频在线观看| 狠狠躁夜夜躁人人爽天天天天97| 亚洲性色视频| jizz亚洲女人高潮大叫| 国产精品v日韩精品v在线观看| 国产精品美女999| 日韩欧美综合在线| 国产婷婷色一区二区三区| 91视频综合| 激情开心成人网| 开心丁香婷婷深爱五月| 精品视频一区二区| 久久精品国产欧美激情| 亚洲午夜久久久久久久久久久 | 亚洲色图视频网站| 亚洲日本激情| 91精品视频一区二区| 佐山爱痴汉视频一区二区三区 | 噜噜噜躁狠狠躁狠狠精品视频| 久草综合在线| 国产高清在线看| 18岁网站在线观看| 成人a免费视频| 亚洲午夜av久久乱码| 夜夜精品视频一区二区| 日韩精品国产欧美| 神马电影久久| 亚洲欧洲高清| 日本aaa在线观看| 国产最新免费视频| 精品一区日韩成人| 日韩美女视频中文字幕| 日韩精品免费一线在线观看| 亚洲激情av在线|