iOS将字符串编码为unicode

时间:2014-02-14 10:44:08

标签: ios unicode

我有一个字符串,都有英文字母和日文字符。我需要在将数据传输到服务器之前将日语字符转换为Unicode。我发现很多主题转换为UTF-8,但在转换为Unicode时我没有找到任何东西。

旁注:我还注意到,如果我将字符串放在数组中并使用NSLog打印数组,则日文文本将以Unicode格式打印。

NSString *data = @"aさ";
NSArray *array = [NSArray arrayWithObjects: data, other data..., nil];
NSLog(@"%@", array);

这将打印出:“a \ U3055”表示我在数组中的字符串数据。

2 个答案:

答案 0 :(得分:15)

NSData *dataenc = [data dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *encodevalue = [[NSString alloc]initWithData:dataenc encoding:NSUTF8StringEncoding];

答案 1 :(得分:0)

-(NSString *)StringWithData:(NSString *)Encoded {

NSString *decoded = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (CFStringRef)Encoded, CFSTR(""), kCFStringEncodingUTF8);
return [decoded stringByReplacingOccurrencesOfString:@"+" withString:@" "];
}

- (NSString *)EncodceStringWithData:(NSString *)Encoded {

NSString *urlEncoded = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)Encoded, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", kCFStringEncodingUTF8));
return [urlEncoded stringByReplacingOccurrencesOfString:@"%20" withString:@"+"];
}