亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Objective C / Cocoa來取消unicode字符,即\ u1234

使用Objective C / Cocoa來取消unicode字符,即\ u1234

HUWWW 2019-09-02 09:07:51
我從中獲取數據的一些站點返回UTF-8字符串,其中UTF-8字符被轉義,即: \u5404\u500b\u90fd是否有內置的可可功能可能有助于此,或者我必須編寫自己的解碼算法。
查看完整描述

3 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

沒有內置函數可以進行C unescaping。


你可以欺騙一點,NSPropertyListSerialization因為“舊文本樣式”plist支持C轉義通過\Uxxxx:


NSString* input = @"ab\"cA\"BC\\u2345\\u0123";


// will cause trouble if you have "abc\\\\uvw"

NSString* esc1 = [input stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];

NSString* esc2 = [esc1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];

NSString* quoted = [[@"\"" stringByAppendingString:esc2] stringByAppendingString:@"\""];

NSData* data = [quoted dataUsingEncoding:NSUTF8StringEncoding];

NSString* unesc = [NSPropertyListSerialization propertyListFromData:data

                   mutabilityOption:NSPropertyListImmutable format:NULL

                   errorDescription:NULL];

assert([unesc isKindOfClass:[NSString class]]);

NSLog(@"Output = %@", unesc);

但請注意,這不是很有效。如果你編寫自己的解析器會好得多。(順便說一句,您是在解碼JSON字符串嗎?如果是,您可以使用現有的JSON解析器。)


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 751 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號