ASCII字符串特殊字符的编码问题

时间:2012-09-28 15:03:03

标签: iphone ios utf-8 ascii

在我的应用程序中,我使用ASCII字符串编码将NSString转换为NSData。对于下面的情况,我无法将字符串转换为数据,因为它包含一些特殊字符。我能够使用UTF 8正确编码,但我需要使用ascii,因为服务器也配置为使用ASCII。

NSData * ldata = [@“CASTAÑO”dataUsingEncoding:NSASCIIStringEncoding];

请帮我解决这个问题。

提前致谢

3 个答案:

答案 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#EDMessagehttp://bitbucket.org/portablek/mimekit/overview

答案 2 :(得分:0)

即使服务器配置为使用ASCII,我也可以使用NSISOLatin1StringEncoding对数据进行编码和解码。

NSData * ldata = [@“CASTAÑO”dataUsingEncoding:NSISOLatin1StringEncoding];

特殊字符'Ñ'是一个扩展的ascii字符,不会被ASCII编码。