簡體   English   中英

NSData到NSString使用initWithBytes:length:encoding

[英]NSData to NSString using initWithBytes:length:encoding

我有一些圖像數據(jpeg)我想從我的iPhone應用程序發送到我的webservice。 為了做到這一點,我正在使用圖像中的NSData並將其轉換為將放置在我的JSON中的字符串。

目前,我這樣做:

    NSString *secondString = [[NSString alloc]  initWithBytes:[result bytes]
                                                    length:[result length] 
                                                  encoding:NSUTF8StringEncoding];

結果是NSData類型。 但是,即使結果長度返回實際值(如14189),secondString似乎也為null。 我使用此方法,因為結果是原始數據而不是以null結尾。

難道我做錯了什么? 我在其他領域使用過這個代碼,它似乎運行正常(但我目前使用的那些區域涉及文本而不是圖像數據)。

TIA。

對於二進制數據,最好使用Base64編碼對其進行編碼,然后在web服務中對其進行解碼。 我使用從這里下載的NSData + Base64類,這個引用也來自Stackoverflow,這是@Ken的回答 (謝謝Ken!)。

您沒有將數據轉換為字符串。 您試圖將其解釋為UTF-8編碼的字符串,除非數據確實是UTF-8編碼的字符串,否則它將失敗。 你最好的選擇是以某種方式對其進行編碼,可能是Manny建議的Base64,然后在服務器上再次對其進行解碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM