2013-12-04 2 views
1

У меня есть веб-сервис, который возвращает байты PDF в виде строки. Преобразовать строку в NSData, выполнив:UIWebView load PDF Байт из NSString

NSData* bytes = [fileBytes dataUsingEncoding:NSUTF8StringEncoding]; 

затем я пытаюсь загрузить байты в WebView по:

[self.webViewFile loadData:bytes MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; 

Но я получаю ошибку: «не удалось найти заголовок PDF:`% PDF не найден.

Начало моего байта строки выглядит следующим образом при печати на консоли: "% PDF-1.6 % \ U00e2 \ U00e3 \ U00cf \ U00d3"

ответ

2

PDF файлы двоичные файлы. Они могут быть редко представлены непосредственно в кодированных строках UTF8. Скорее всего, ваш файл PDF закодирован в строку UTF8 с использованием кодировки Base64.

Вы можете создать объект NSData непосредственно из строки, используя

NSData *data = [[NSData alloc]initWithBase64EncodedString:fileBytes options:0]; 
+0

Не работает та же проблема, но я чувствую, как его на правильном пути ... – MobileMon

+0

Когда я использую этот метод, NSData из строка равна нулю – MobileMon

+0

Объект NSData будет равен nil, если строка, переданная внутри, не может быть декодирована с использованием схемы base64. Вы должны знать, как ваши данные кодируются для его декодирования. –

Смежные вопросы