nodejs распаковать с опцией кодирования - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать некоторый код, который заставляет сервер разархивировать запрошенный файл, используя nodejs (express) ...

app.post('/unzip', function(req, res) {

    //Get User Information

    var id = req.body.id;


    //Get ZIP Information

    var rendering_ready_file_unzip = req.body.filename + '.zip';
    var rendering_ready_file_unzip_nonext = req.body.filename;

    //Extract zip

    var extract = require('extract-zip');

    var unzip_route = path.join(__dirname, '../unzip/' + "id" + '/' + date + '/');;

    extract(path.join(__dirname, '../upload/' + rendering_ready_file_unzip), {dir: unzip_route}, function (err) {
        if (err) {
            console.log(err);
        }
        res.end();
    });}

Это работает ... но другие языки, такие как корейский, повреждены после распаковки ..Поэтому я хочу узнать о unzip-модулях, которые могут обозначать тип кодировки.

Знаете ли вы это?

1 Ответ

0 голосов
/ 28 февраля 2019

Возможно, проблема не в модуле.Это помогает свести проблемный код к минимуму, и в этом случае это может быть следующим:

const path = require('path');
const extract = require('extract-zip');

const file_unzip = 'test.zip';

extract(path.join(__dirname, file_unzip), {dir: __dirname}, function (err) {
  if (err) {
    console.log(err);
  }
});

После помещения этого в index.js и установки extract-unzip возможен тестовый пример с тем же каталогомв баш.Выведите корейские символы в файл и убедитесь, что они там есть:

$echo 안녕하세요>test
$cat test
안녕하세요

Заархивируйте файл, удалите оригинал и убедитесь, что он пропал:

$zip test.zip test
adding: test (stored 0%)
$rm test
$ls test*
test.zip

Запустите скрипт и посмотритечто файл извлечен и содержит те же символы:

$node index.js
$ls test*
test  test.zip
$cat test
안녕하세요

Я получил те же результаты с символами из нескольких других языков.Поэтому, по крайней мере, в этой настройке модуль распаковывается без изменения символов во внутренних файлах. Попробуйте выполнить те же тесты в своей системе и внимательно посмотрите, что происходит до распаковки. Могут возникнуть проблемы с тем, как файлы генерируются, кодируются, архивируются или загружаются.Исследуйте один шаг за раз.

...