我有一个字符串,都有英文字母和日文字符。我需要在将数据传输到服务器之前将日语字符转换为Unicode。我发现很多主题转换为UTF-8,但在转换为Unicode时我没有找到任何东西。
旁注:我还注意到,如果我将字符串放在数组中并使用NSLog打印数组,则日文文本将以Unicode格式打印。
NSString *data = @"aさ";
NSArray *array = [NSArray arrayWithObjects: data, other data..., nil];
NSLog(@"%@", array);
这将打印出:“a \ U3055”表示我在数组中的字符串数据。
答案 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:@"+"];
}