先來個簡單的 NSString CString 字串轉換
from http://mobiledevelopertips.com/c/converting-between-c-and-objective-c-strings.html
// NSString object to C
NSString *str = @"String object to a C string";
const char *ptr = [str cStringUsingEncoding:NSUTF8StringEncoding];
printf("%s\n", ptr);
// Another approach with the same result
const char *ptr2 = [str UTF8String];
printf("%s\n", ptr2);
// C string to NSString object
ptr = "C string to string object";
str = [NSString stringWithCString:ptr encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);
然後更進一步,解 \uxxxx
NSString *s = [NSString stringWithUTF8String:"\u53f0\u7063 114 \u53f0\u5317\u5e02 \u65b0\u660e\u8def143\u5df7 4\u865f"];
NSLog(@"%@", s);
接下來是 \U
這邊其實有個問題,\U和\u並不相同
\U 是從 json parse 出來的結果
會處理這問題其實是因為取得資料時碰到一點小問題
如下字串:
\U53f0\U7063 114 \U53f0\U5317\U5e02 \U65b0\U660e\U8def143\U5df7 4\U865f
這組字串是從 CLGeocoder 的 FormattedAddressLines 中取出
原型是 NSArray,網路上的簡單處理方法是直接合併取得字串
NSString* ss = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
不過這一串到底是怎麼來的我還是搞不清楚..
先在此做個註記,日後繼續處理
沒有留言:
張貼留言