我不确定我是否提出了正确的问题,如果我错了请纠正我,但我到处搜索,我找不到答案来帮助我解决以下问题:
我有一个NSString,内容如下:“BjörnBr.Björnsson”
我需要得到以下表格:“Bj \ u00f6rn Br.Bj \ u00f6rnsson”。
到目前为止,我已经尝试了所有与stackoverflow相关的内容。如果有人知道如何从ö类型的字符到达\ u00f6那将是非常棒的。
我试过了:
NSString *name = @"Björn Br. Björnsson";
NSString* string = [NSString stringWithCString:[name cStringUsingEncoding: NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding];
或
NSMutableString *string = [[NSMutableString alloc] initWithString:name];
const char *encoded = [string cStringUsingEncoding:NSASCIIStringEncoding];
或
NSData* nsData = [name dataUsingEncoding:NSUTF8StringEncoding];
const char* data = [nsData bytes];
NSUInteger len = nsData.length;
NSMutableString* hex = [NSMutableString string];
for(int i = 0; i < len; ++i)[hex appendFormat:@"%02X", data[i]];
或
const char * encodedStringName = [crewmemName cStringUsingEncoding:NSISOLatin1StringEncoding];
和其他许多..
提前致谢。
答案 0 :(得分:0)
NSString *name = @"Björn Br. Björnsson";
name =[name stringByReplacingOccurancesOfString:@"ö" withString:@"\u00f6"];
你可能不得不逃避反斜杠。只需键入\\\而不是\。但不确定。
答案 1 :(得分:0)
您可以在NSString
上创建一个类别并调用此方法,这将按您想要的方式进行编码
@implementation NSString (URLEncoding)
- (NSString *) stringByUrlEncoding{
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&;=+$,/?%#[]", kCFStringEncodingUTF8));
}
@end