嘿,我試圖讓文本ASCII,然後將其存儲在服務器上,那麼當我拿回來,我想文本解碼回的NSString,因爲它是
我用過的下面的代碼來測試隨機應用程序..但在這裏我有NSdata作爲一個全局變量,所以它工作正常..
問題是我如何獲得值NSString我從服務器中獲取NSData變量,所以我可以將其轉換回我編碼的文本。
.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,但我想回到文本能夠張貼在應用程序。
恐怕你絕望地困惑。你顯然不明白「編碼」只適用於8位數據 - 一旦一個字符串在NSString中,它就是Unicode。你也不明白,如果你轉儲(或用'%@'格式化)一個NSData對象,你會看到十六進制,而不是字符數據。***任何*** NSData對象都是如此。 (上面的十六進制是「@xmadoo!1234!kmdoao」) –
所以我可以使用正常的十六進制字符串轉換器將其轉換回來..例如:http://stackoverflow.com/questions/6421282/how-to- convert-hex-to-nsstring-in-objective-c。有沒有一種方法可以作爲數據發送......?或任何其他選項進行加密? thnx和sry用於最近的回覆.. –
使用NSString initWithData ...您應該使用原來用於生成數據的相同字符串編碼,但UTF8應該可以在幾乎所有情況下使用。 –