Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C NSString编码Umlauts_Objective C_Encoding_Nsstring_Diacritics - Fatal编程技术网

Objective-C NSString编码Umlauts

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); 我做错了什么?在第二行,我看到一个非常好的“ö”,但在第三行,我看到:√∂ 互联网上有很多编码帖子,但没有真正解决问题。在与服务器交谈时,您是否正确编码或解码了内容 请记住

我有以下问题:

我在UITextField中输入数据,然后将其发送到服务器。但我输入的数据可能包含umlauts(ö,ä,ü,…)。然后我在将其传递给服务器时得到了错误的编码。但我用UTF8编码

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来设置字符串格式。现在它起作用了。