Objective-C NSString编码Umlauts
我有以下问题: 我在UITextField中输入数据,然后将其发送到服务器。但我输入的数据可能包含umlauts(ö,ä,ü,…)。然后我在将其传递给服务器时得到了错误的编码。但我用UTF8编码Objective-C NSString编码Umlauts,objective-c,encoding,nsstring,diacritics,Objective C,Encoding,Nsstring,Diacritics,我有以下问题: 我在UITextField中输入数据,然后将其发送到服务器。但我输入的数据可能包含umlauts(ö,ä,ü,…)。然后我在将其传递给服务器时得到了错误的编码。但我用UTF8编码 NSString *s = @"ö"; NSLog(@"%@", s); NSLog(@"%s", s.UTF8String); 我做错了什么?在第二行,我看到一个非常好的“ö”,但在第三行,我看到:√∂ 互联网上有很多编码帖子,但没有真正解决问题。在与服务器交谈时,您是否正确编码或解码了内容 请记住
NSString *s = @"ö";
NSLog(@"%@", s);
NSLog(@"%s", s.UTF8String);
我做错了什么?在第二行,我看到一个非常好的“ö”,但在第三行,我看到:√∂
互联网上有很多编码帖子,但没有真正解决问题。在与服务器交谈时,您是否正确编码或解码了内容 请记住,NSString具有以下出色的功能: 及
至于在第三个NSLog行输出中看到垃圾,格式中的“%s”意味着NSLog需要一个C风格的字节集合,它可能无法正确显示高ascii值。而NSLogs中的“%@”格式意味着NSString对象,所有字符串编码都应该为此正常工作 在处理UTF8和NSString时,您可能应该使用
[@“ö”dataUsingEncoding:NSUTF8StringEncoding]
获取可以通过网络发送的NSData对象。这会一直正常工作。您的输出日志/终端/任何被正确声明/解释为UTF-8的内容吗?%s和UTF-8对我有效,只要我的终端设置正确。@Wevah当然可以,%s对我也有效。。。但问题是它是否适用于umlauts或其他?实际上有两个问题:我没有使用StringByAddingPercentescapesusingEncode:我应该使用%@或%s来设置字符串格式。现在它起作用了。