我得到一个NSStrings,其中包含 \ u00f6 等字符。我找不到如何将其编码为UTF8。
NSString *resultString = [NSString stringWithContentsOfURL:wikiSearchURL usedEncoding:NSUTF8StringEncoding error:&err];
...谢谢
答案 0 :(得分:3)
我想你想这样做:
NSString *resultString = [NSString stringWithContentsOfURL:wikiSearchURL encoding:NSUTF8StringEncoding error:&err];
usedEncoding:
会告诉您解析网址时使用的编码,而encoding:
会强制它使用特定的编码。
答案 1 :(得分:0)
NSString
在概念上使用UTF-16作为其内容格式。 0x00F6
是在NSString
中找到的完全有效的字符。这是o-umlaut。如果要将字符串转换为UTF-8,请使用-UTF8String
const char* foo = [myString UTF8String];
请注意,从URL获取字符串并尝试确定使用了哪种编码的代码行是错误的。你应该使用类似的东西:
NSStringEncoding theEncoding;
NSString *resultString = [NSString stringWithContentsOfURL: wikiSearchURL usedEncoding: &theEncoding error:&err];
假设返回的字符串不是nil,theEncoding
现在将包含用于将URL内容转换为字符串的编码。