将Unicode字符转换为NSString

时间:2012-08-23 11:31:17

标签: iphone utf-8 unicode-string

我收到了来自webservice的字符串,其中包含Unicode字符。我想将其转换为纯NSString。那我怎么能这样做?

前:“这不是你的自行车”

那么如何删除unicode并用其相同的特殊符号替换它。

输出结果是:“这不是你的自行车”

3 个答案:

答案 0 :(得分:7)

char cString[] = "This isn\u2019t your bike";
NSData *data = [NSData dataWithBytes:cString length:strlen(cString)];
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"result string: %@", string);

这应该有用。

评论的最新情况:

所有字体都不支持您指定的unicode字符。

http://www.fileformat.info/info/unicode/char/92/fontsupport.htm

但是这个确实如此。

http://www.fileformat.info/info/unicode/char/2019/fontsupport.htm

这就是为什么它会抛出错误。

答案 1 :(得分:2)

NSString *final_url = [NSString stringWithFormat:url]; 

final_url = [final_url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:final_url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:120.0];    

NSURLResponse *response;
NSError *error = [[NSError alloc] init];

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSString *strResponse = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

SBJSON *objJSON = [SBJSON new];

NSMutableDictionary *objDataDic = [objJSON objectWithString:strResponse error:nil];

答案 2 :(得分:0)

有一个库可以进行转换 https://github.com/alexaubry/HTMLString。它将转换所有类型的Unicode字符。

let escapedSnack = "Fish & Chips"
let snack = escapedSnack.removingHTMLEntities // "Fish & Chips"