3

我正在使用 dulwich(一个 Python 库)来访问 git 存储库。当我get_object用来检索提交时,它有许多属性。其中之一是author。当我检索这个属性时,我得到bytes了,所以这个属性是一个未知的编码。

有没有我可以安全假设的编码?git 在存储之前是否会将所有元数据转换为 utf-8?如果没有,我怎么知道使用哪种编码来解码字节?

4

1 回答 1

2

元数据应该使用i18n.commitEncoding配置值设置的值进行编码;每当创建提交时,当前值都会复制到对象的“编码”标头中(如果已设置);默认值为 UTF-8。

该编码值可作为“.encoding”属性在 Dulwitch 对象上使用;如果没有明确设置,则可以使用 UTF-8 作为默认值Nonei18n.commitEncoding

然而!存储的实际数据仅遵循传递给 git 的任何字节,并且不会发生重新编码。配置值纯粹是信息性的。因此,您需要考虑使用了不正确的编解码器,如果您要object.encoding or 'utf8'用作编解码器,请使用合理的错误处理程序或回退策略。

于 2018-06-12T21:45:46.297 回答