NSString格式问题

时间:2011-09-19 13:15:05

标签: iphone character-encoding nsstring

我正在使用Google Place API并获得了成功的JSON响应。但是一个NSStringL\U00c3\U00b6wenbr\U00c3\U00a4u Keller。我想将其转换为适当的NSString,如Lowenbrau Keller。我该如何进行转换?

3 个答案:

答案 0 :(得分:4)

正确的格式是使用小写u来表示Coocoa中的unicode:

错误:

NSString *string1 = @"L\U00c3\U00b6wenbr\U00c3\U00a4u Keller";

正确:

NSString *string2 = @"L\u00c3\u00b6wenbr\u00c3\u00a4u Keller";

要使其正确打印,请将\ u00替换为\ x

NSString *string3 = @"L\xc3\xb6wenbr\xc3\xa4u Keller";
NSLog(@"string3: '%@'", string4);

NSLog输出:string3:'LöwenbräuKeller'

答案 1 :(得分:1)

测试代码:100%工作

注意:

\ U和\ u不是一回事。 \ U转义需要8(十六进制)数字而不是4。

NSString *inputString =@"L\u00c3\u00b6wenbr\u00c3\u00a4u Keller";



NSString *outputString=[[NSString stringWithFormat:@"%@",inputString] stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]];

NSLog(@"outputString : %@ \n\n",outputString);

<强>输出:

outputString : LA¶wenbrA¤u Keller

答案 2 :(得分:0)

您可以按照以下方式使用它。

NSString * localStr = @“L \ U00c3 \ U00b6wenbr \ U00c3 \ U00a4u Keller”;

localStr = [localStr stringByReplacingOccurrencesOfString:@"&#39;" withString:@"'"];
localStr = [localStr stringByReplacingOccurrencesOfString:@"&nbsp;" withString:@" "];
localStr = [localStr stringByReplacingOccurrencesOfString:@"&quot;" withString:@"'"];
localStr = [localStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
localStr = [localStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

我希望它会对您有所帮助并显示确切的字符串。

干杯。