1

当我从 GitHub 加载降价文件时,我遇到了很多错误。我想我没有通过 Octokit 对 GitHub 文件使用正确的编码。关于如何在 Node.js 中修复我的缓冲区代码的任何建议?

对于 Github 内容,base64 和 ascii 是否正确?在没有 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
                                           ^

直接在我的项目中加载markdown文件没有错误:

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});
4

1 回答 1

0

正如 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是我想要的。

于 2020-04-28T22:10:38.917 回答