Как преобразовать кодировку не-UTF-8 в более читаемую кодировку / UTF-8 в PHP? - PullRequest
0 голосов
/ 23 мая 2018

Я использую PDF Parser в проекте Laravel 5.4 для получения содержимого PDF-файла.Но когда я выгружаю содержимое, я получаю зашифрованный текст, который при наведении на него читает «5868 двоичных или не-UTF-8 символов».

Это код, который должен читать содержимое файла.

$file = $request->file('file');
$parser = new \Smalot\PdfParser\Parser();
$pdf    = $parser->parseFile($file);
$scannedText = $pdf->getText();
dd($scannedText);

, который выводит что-то вроде этого:

x00i\x00n\x00g\x00ª\x00t\x00h\x00i

Функция PHP mb_detect_encoding() возвращает значение false, когда для "кодировки типа" установлено значение "auto".utf8_encode() тоже не работает, поэтому я знаю, что это не кодировка ISO-8859-1.

Вот где я застрял.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 15 декабря 2018

В моем проекте я получил похожую ошибку с PDF Parser.

Но у меня больше не было этой ошибки, используя: https://github.com/spatie/pdf-to-text.

Вы можете использовать composer для его установки:

composer require spatie/pdf-to-text

И это работает так:

use Spatie\PdfToText\Pdf;

$pdf = (new Pdf())->setPdf('sample.pdf');

$pdf->setOptions(['layout']);

dump($pdf->text());
...