2011-08-18 19 views
0

我允許我的應用程序的用戶拍照或從他們的庫中選擇一個。選擇時,我需要獲取圖像的數據並將其轉換爲字符串,以便將其發送到Web服務。將照片數據轉換爲nsstring返回零

我現在遇到的問題是,當我將編碼設置爲UTF8時,[NSString initWithData:]返回nil。我需要將它設置爲UTF8的XML消息。

NSString *dataString = [[NSString alloc] initWithData:UIImageJPEGRepresentation(theImage, 1.0) encoding:NSUTF8StringEncoding]; 

感謝您的任何建議!

回答

0

使用initWithData:encoding:method不能將UIImage轉換爲NSString。此方法僅用於將字符串的數據轉換爲NSString(例如文本文件)。

如果您試圖將任何類型的二進制數據轉換爲NSString,則可以使用某種編碼。 Base64被廣泛使用。另外你的服務器應該能夠解碼你發送的內容。

此外,在大多數情況下,發送圖像到服務器只需要像過去那樣以二進制形式發佈它。

+1

謝謝xuzhe。在這種情況下,我無法將圖像作爲POST變量發送,我必須對其進行編碼並將其附加爲Web服務消息的一部分。但至少我現在知道我錯了,我需要Base64對圖像數據進行編碼。如果你之前做過類似的事情,你能推薦一個好的圖書館嗎? – bennythemink

+0

不客氣。你可以去這個鏈接瞭解更多信息。 http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html。您也可以在文章底部下載名爲「NSData + Base64」的NSData類別。將NSData轉換爲NSString base64編碼非常容易。 – xuzhe

+0

再次感謝xuzhe:D – bennythemink