Github 上读取降价文件的编码问题
Encoding issue with reading markdown files on Github
当我从 GitHub 加载降价文件时,我 运行 遇到了很多错误。我认为我没有通过 Octokit 为 GitHub 文件使用正确的编码。关于如何在 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
^
在我的项目中直接加载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});
正如 Octokit 的一位成员在我的 Github issue 上回复我的那样,我不需要使用 ascii
进行编码,我应该使用 uft8
,如下所示:
- const bufferedData = Buffer.from(repos.data.content, 'base64').toString('ascii')
- const bufferedData = Buffer.from(repos.data.content, 'base64').toString()
buffer.toString() 默认为 utf8
这就是我想要的。
当我从 GitHub 加载降价文件时,我 运行 遇到了很多错误。我认为我没有通过 Octokit 为 GitHub 文件使用正确的编码。关于如何在 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
^
在我的项目中直接加载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});
正如 Octokit 的一位成员在我的 Github issue 上回复我的那样,我不需要使用 ascii
进行编码,我应该使用 uft8
,如下所示:
- const bufferedData = Buffer.from(repos.data.content, 'base64').toString('ascii')
- const bufferedData = Buffer.from(repos.data.content, 'base64').toString()
buffer.toString() 默认为 utf8
这就是我想要的。