проблема кодирования / декодирования данных base64 в String to File () - PullRequest
0 голосов
/ 06 августа 2020

Я программирую интерфейс веб-почты в образовательных целях, и у него проблемы с вложениями.

При тестировании с помощью DevTools :

console.log( file )
file.length
new File( [ file ], "download.pdf" );

дает следующее результаты:

> console.log( file )
< ...
< ...
< Ò:ašSéàƒ‰òâ#ZMÖ…S©øz‡cß¾}uµ4ƒX™:´ìø,^j<¤Ö#A­ŒŽtaù£´tc¬¾t"
< Show more (26.7 kB) Copy

> file.length
< 18899

> new File( [ file ], "download.pdf", )
< File {name: "test.pdf", lastModified: 1596733568533, lastModifiedDate: Thu Aug 06 2020 13:06:08 GMT-0400 (hora de Venezuela)
, webkitRelativePath: "", size: 26739, …}

когда я загружаю файл «download.pdf» и проверяю эти результаты на сервере, он соответствует файлам (исходным и загруженным)

$ ls -go *pdf
-rw-rw-r-- 1 26739 ago  6 09:58 download.pdf
-rw-rw-r-- 1 18899 ago  3 20:41 file.pdf
$ file *pdf
download.pdf: PDF document, version 1.5
file.pdf:     PDF document, version 1.5
$ iconv -f iso8859-1 -t utf-8 <file.pdf>utf8.pdf
$ ls -go *pdf
-rw-rw-r-- 1 26739 ago  6 09:58 download.pdf
-rw-rw-r-- 1 18899 ago  3 20:41 file.pdf
-rw-rw-r-- 1 26739 ago  6 14:18 utf8.pdf
$ cmp download.pdf utf8.pdf
$

Когда я сравниваю Файлы "download.pdf" с "utf8.pdf" оба файла одинаковы !, что означает, что команда File () кодирует строку "file" из iso8859-1 в utf-8

Как я могу предотвратить это не произошло?

1 Ответ

0 голосов
/ 07 августа 2020

Проблема решена

Используется « String » вместо « ArrayBuffer ».

« String » закодировано в UTF-8, в то время как " ArrayBuffer " остается неизменным !! ;))

вот небольшая программа, которая конвертирует dataURL (« String ») в « ArrayBuffer », а затем помещает его в «":

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...