0

テキストを ASCII に変換してサーバーに保存しようとしているのですが、それを取得したら、テキストをデコードして NSString に戻したいと考えています。

次のコードを使用してランダムなアプリでテストしました..しかし、ここではNSdataをグローバル変数として使用しているため、正常に動作します..

質問は、NSData 変数でサーバーから取得した値 NSString を取得して、エンコードしたテキストに戻す方法です。

.h

@interface passTestViewController : UIViewController
{
    NSString *text;
    NSData *d;
}

.m

- (IBAction)eButton:(id)sender {
    text = [NSString stringWithFormat:@"%@%@%@",@"!",[_textField text],@"!"];

    d=[[NSString stringWithFormat:@"%@",text] dataUsingEncoding:NSASCIIStringEncoding];
    text = [NSString stringWithFormat:@"%@",d];

    [_label setText:text];
}

- (IBAction)dButton:(id)sender {

    NSString *dString = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding];
    dString = [dString stringByReplacingOccurrencesOfString:@"!" withString:@""];
    [_label setText:dString];
}

私はそれをNSDataに取得する必要があります。JSONを介してサーバーに送信し、後で戻ってきたときに...文字列として取得します..必要なのは

NSData *d = stringThatIGetBackFromJson; 

だから私はそれを介して変換することができます

NSString *dString = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding];

ユーザーが入力した元の文字列を取得します。

また、エンコード後にこれから取得する文字列には、記号とスペースがあります.. '<' '>' と ' ' URL に到達しないため、スペースと < > を削除しました。

myString = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@"<" withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@">" withString:@""];

だから今、私が返すのは「40786d61646f6f2131323334216b6d646f616f」のような数字だけです...とにかくこれの周りにありますか? 比較するには、テキストのエンコードを確認し、同じ手順に従って、isEqualTo かどうかを比較していますが、アプリに投稿できるようにテキストを取得したいと考えています。

4

2 に答える 2

6

NSString を NSDataに変換するには、以下の3 つの方法を試してください。

1 .NSData* data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

2 .NSData* data=[yourString dataUsingEncoding: [NSString defaultCStringEncoding] ];

3 .NSData* data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
data = [data subdataWithRange:NSMakeRange(0, [data length] - 1)];

データがnull で終了していない場合、

NSString* myString = [[NSString alloc] initWithData:nsDataString
                                         encoding:NSUTF8StringEncoding] ;

データがヌル終了の場合

NSString* myString = [NSString stringWithUTF8String:[nsDataString bytes]];
于 2012-11-02T08:37:38.187 に答える
0

に変更NSASCIIStringEncodingしてみてくださいNSUTF8StringEncoding

于 2012-11-02T09:07:54.390 に答える