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 メールを送信するために使用されます。

MIME を使用してデータをエンコードするために NSData/NSString を拡張するカテゴリがあります (結果として ASCII 文字になります)。これがすぐに解決できるとは思いませんが、制約 (ASCII のみのサーバー) によると、MIME は最善の解決策。

参照: http://www.mulle-kybernetik.com/software/EDFrameworks/download.html#EDMessage および http://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 に答える