2014-06-05 76 views
0

我無法將二進制數據(某些文本)轉換回字符串。二進制數據到字符串轉換問題

原始文本來自JSON提要,然後將其轉換爲二進制數據以在CoreData中存儲(使用正確的格式)。我的問題是讓它退出CoreData。當我嘗試將其與下面的轉換:NSString *howToString = [[NSString alloc]initWithBytes:[dish.dishMainText bytes] length:[dish.dishMainText length] encoding:NSASCIIStringEncoding];我得到如下:

bplist00‘T$topX$objectsX$versionY$archiver—TrootÄ¢ 
U$nulloÚ1 kage 



R¯r sukker, kakao og vanillekorn i sm¯rret. Pisk Êggene i et ad gangen, og tilsÊt til sidst melet. Fordel dejen i en smurt form p 24 cm. Bag kagen i ca. 20 minutter nederst i ovnen ved 175∞. 



Giv piskefl¯de og sm¯r et lille opkog. TilsÊt appelsinskal og chokolade, og lad den smelte ved lav temperatur. R¯r rundt i blandingen. HÊld chokoladeblandingen i en skÂl og sÊt den koldt. Fordel den faste tr¯ffelmasse ud over den afk¯lede kage. 



Server evt. kagen pyntet med blandede bÊr.܆_NSKeyedArchiver(25:<?E-2 
D 

正如你所看到的,在開始和結束有一定的文字是不正確轉換。我嘗試過不同形式的編碼(UTF,Latin1/2等等),但沒有任何東西看起來完美。這是迄今爲止我能夠生產的最好結果,但顯然不令人滿意。

讓我知道是否需要更多的代碼。

在此先感謝 克里斯

+0

它如何轉換爲二進制數據? – Daniel

+0

我使用RKEntityMapping(RestKit的一部分),然後只是將JSON字符串分配給我的實體的二進制數據屬性 – Chris

+0

正如@GregParker所述。這是如何在Apple文檔中閱讀它的示例:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PropertyLists/ReadWritePlistData/ReadWritePlistData.html#//apple_ref/doc/uid/10000048i -CH8-SW1 – 3329

回答

0

bplist00文本在數據開始表明,你的數據實際上是一個二進制的plist,不是一個簡單的編碼字符串。嘗試使用NSPropertyListSerialization解碼您的數據。

+1

感謝您的回答克雷格,我恐怕也沒有給我想要的結果。它返回更多的「原始數據」 – Chris

0

這是一個鍵控歸檔,它是屬性列表的一種子屬性。這是來自您的應用的序列化對象圖。您可以解除封存這樣的:

id rootObject = [NSKeyedUnarchiver unarchiveObjectWithData:[dish.dishMainText bytes]]; 

注意結果 - 假設數據是從您的應用程序歸檔,這是一個有效的歸檔 - 是一個對象圖,而不是一個字符串。