我是Objective-C的新手,嘗試使用apples docs上的示例將畸形的UTF8編碼的NSString轉換爲格式良好的UTF8。使用NSString解碼UTF8
NSString *theString = @"Lügen"; //should be "ü"
NSString *asciiString = [[NSString alloc] initWithData:asciiData encoding:NSASCIIStringEncoding];
NSLog(@"Original: %@ (length %d)", theString, [theString length]);
NSLog(@"Converted: %@ (length %d)", asciiString, [asciiString length]);
結果:
Original: Lügen (length 6)
Converted: LA1/4gen (length 8)
在這裏,這是做什麼:
NSString* str = [NSString stringWithUTF8String:
[theString cStringUsingEncoding:NSASCIIStringEncoding]];
這在這裏崩潰我的應用程序
NSString* str = [NSString stringWithUTF8String:
[theString cStringUsingEncoding:NSUTF8StringEncoding]];
任何人任何想法,我做錯了什麼?
您可以將字符串轉儲爲十六進制嗎?我不會閱讀畸形的UTF8流利:) – 2012-01-13 11:47:18
這是一個「ü」不知道如何獲得十六進制值;) – 2012-01-13 11:52:49
請在任何涉及崩潰的問題中發佈崩潰的細節。 – jrturton 2012-01-13 12:41:36