0

サーバーからの json リクエストから base64 文字列を受信して​​います... base64 文字列は次のようになります:
"/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1J..." (かなり短縮)

今私の問題は、これを NSString > NSURL から回すと、バックスラッシュが文字列からエスケープされることです...
"/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1J"

つまり、「/」は単なる「/」に変わります。これが、UIImage へのエンコーディングの問題であると確信しています (次の方法を使用します: NSString -> NSURL -> NSData -> UIImage)。

UIImage を作成するコード:

    imageAllArray = [pathwayResults valueForKey:@"images_data_base64"];  
    NSURL *image2URL = [NSURL URLWithString:[imageAllArray objectAtIndex:1]];  
    NSData *image2Data = [NSData dataWithContentsOfURL:image2URL];  
    imageTwo = [UIImage imageWithData:image2Data];

バックスラッシュが変換する文字列内にとどまるようにする方法を知っている人はいますか?

または、これについて別の/より簡単な方法はありますか?

4

2 に答える 2

0
NSString *encodedString = [@"your string" stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2013-03-23T10:19:40.800 に答える
0

バックスラッシュはまったく害を及ぼさず、文字列の先頭に「data:image/png;base64」を追加するのを忘れたためであることがわかりました。

下記参照:

        NSString *prepender = @"data:image/png;base64,";
        NSString *image1String = [NSString stringWithFormat:@"%@%@", prepender, [pathwayImageArray objectAtIndex:0]];
        NSURL *image1URL = [NSURL URLWithString:image1String];
        NSData *image1Data = [NSData dataWithContentsOfURL:image1URL];
        imageOne = [UIImage imageWithData:image1Data]; 

これが他の誰かに役立つことを願っています!

于 2013-03-24T09:45:40.907 に答える