Проблема с кодированием при чтении файлов разметки на Github - PullRequest
1 голос
/ 24 апреля 2020

Когда я загружаю файл уценки из GitHub, я сталкиваюсь с большим количеством ошибок. Я думаю, что я не использую правильную кодировку для файлов GitHub через Octokit. Любые предложения о том, как исправить мой буферный код в Node.js?

Является ли base64 и затем ascii правильным для содержимого Github? Он отлично работает при загрузке прямо в моем проекте без GitHub. У меня такое чувство, что GitHub хранит свои файлы в другом формате, но не может найти в нем документы.

const repos = await octokit.repos.getContents({
    owner: 'owner-hidden',
    repo: 'repo-hidden'
    path: '/dinner.md
});

// repo loads with data.content just fine
const bufferedData = Buffer.from(repos.data.content, 'base64').toString('ascii');
const ymlData = YAML.parse(bufferedData); ## issue with reading this

Ошибка приведена ниже, но ошибка не обязательно имеет значение, поскольку она работает при загрузке непосредственно в моем проекте нет ошибок.

YAMLException: the stream contains non-printable characters at line 36, column 126:
       ... auteLed spinach and ratatouille
                                           ^

При загрузке файла уценки прямо в моем проекте не было ошибок:

const fs = require('fs');
const path2 = require('path');
const file = path2.resolve(__dirname, '/dinner.md');
const content = fs.readFileSync(file);

const bufferedData = Buffer.from(content).toString('ascii');
console.log({bufferedData});

1 Ответ

0 голосов
/ 29 апреля 2020

Поскольку один из членов Octokit ответил мне на мою проблему Github , мне не нужно кодировать с ascii, я должен использовать uft8, как показано здесь:

    - const bufferedData = Buffer.from(repos.data.content, 'base64').toString('ascii')
    - const bufferedData = Buffer.from(repos.data.content, 'base64').toString()

buffer.toString () по умолчанию utf8, что я и хочу.

...