我正在使用 dulwich(一个 Python 库)来访问 git 存储库。当我get_object
用来检索提交时,它有许多属性。其中之一是author
。当我检索这个属性时,我得到bytes
了,所以这个属性是一个未知的编码。
有没有我可以安全假设的编码?git 在存储之前是否会将所有元数据转换为 utf-8?如果没有,我怎么知道使用哪种编码来解码字节?
元数据应该使用i18n.commitEncoding
配置值设置的值进行编码;每当创建提交时,当前值都会复制到对象的“编码”标头中(如果已设置);默认值为 UTF-8。
该编码值可作为“.encoding”属性在 Dulwitch 对象上使用;如果没有明确设置,则可以使用 UTF-8 作为默认值None
。i18n.commitEncoding
然而!存储的实际数据仅遵循传递给 git 的任何字节,并且不会发生重新编码。配置值纯粹是信息性的。因此,您需要考虑使用了不正确的编解码器,如果您要object.encoding or 'utf8'
用作编解码器,请使用合理的错误处理程序或回退策略。