Проблема с кодировкой при чтении файлов уценки на Github
Когда я загружаю файл уценки из 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 ответ
Как один из участников 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
чего я и хочу.