0

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

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

请帮我解决这个问题。

提前致谢

4

3 回答 3

1

你的意思是你想在你的 NSData 中将“CASTAÑO”转换为“CASTANO”吗?

使用dataUsingEncoding:allowLossyConversion:

如:

NSData *ldata=[@"CASTAÑO" dataUsingEncoding:NSASCIIStringEncoding
                       allowLossyConversion:YES];
于 2012-09-28T15:13:17.533 回答
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

于 2012-09-28T19:54:27.577 回答
0

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

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

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

于 2012-10-01T07:08:45.097 回答