在我的应用程序中,我使用ASCII字符串编码将NSString转换为NSData。对于下面的情况,我无法将字符串转换为数据,因为它包含一些特殊字符。我能够使用UTF 8正确编码,但我需要使用ascii,因为服务器也配置为使用ASCII。
NSData * ldata = [@“CASTAÑO”dataUsingEncoding:NSASCIIStringEncoding];
请帮我解决这个问题。
提前致谢
答案 0 :(得分:1)
你的意思是你想在你的NSData中将“CASTAÑO”转换为“CASTANO”吗?
使用dataUsingEncoding:allowLossyConversion:
如:
NSData *ldata=[@"CASTAÑO" dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:YES];
答案 1 :(得分:0)
如何使用MIME传输数据? MIME是使用ASCII字符编码各种文件类型的标准方法。 它通常用于使用不支持任何非ASCII数据的SMTP协议发送非ASCII电子邮件。
有些类别会扩展NSData / NSString以使用MIME对数据进行编码(这将导致ASCII字符。)我不认为它是一个即时解决方案,但根据您的约束(仅限ASCII服务器),MIME应该是最好的解决方案。
请参阅: http://www.mulle-kybernetik.com/software/EDFrameworks/download.html#EDMessage 和 http://bitbucket.org/portablek/mimekit/overview
答案 2 :(得分:0)
即使服务器配置为使用ASCII,我也可以使用NSISOLatin1StringEncoding对数据进行编码和解码。
NSData * ldata = [@“CASTAÑO”dataUsingEncoding:NSISOLatin1StringEncoding];
特殊字符'Ñ'是一个扩展的ascii字符,不会被ASCII编码。