4

Web サービスから Unicode 文字を含む文字列を受け取りました。それをプレーンなNSStringに変換したい。どうすればそれを行うことができますか?

例: 「これはあなたの自転車ではありません」

では、どうすればユニコードを削除し、それを同等の特殊記号の文字に置き換えることができますか?

出力は次のようになります:「これはあなたのバイクではありません」

4

3 に答える 3

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

それがエラーをスローする理由です。

于 2012-08-23T11:41:51.267 に答える
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];
于 2012-08-23T11:48:25.237 に答える