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 所以我所做的是删除空格和 < > thru

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

所以现在我要回来的只是像“40786d61646f6f2131323334216b6d646f616f”这样的数字......这周围有吗?比较我只是检查文本的编码并按照相同的步骤进行比较,然后比较 if isEqualTo,但我希望恢复文本以便能够在应用程序上发布。

4

2 回答 2

6

尝试以下三种方法将NSString 转换为 NSData

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)];

如果数据不是空终止的

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

如果数据以空值结尾

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

尝试更改NSASCIIStringEncodingNSUTF8StringEncoding

于 2012-11-02T09:07:54.390 回答