我正在使用dulwich (一个Python库)来访问git存储库。当我使用get_object
检索提交时,它有许多属性。其中之一就是author
。当我检索这个属性时,我得到的是bytes
,所以这个属性是一个未知的编码。
有没有一种我可以放心假设的编码?git会在存储之前将所有元数据转换为utf-8吗?如果没有,我怎么知道使用哪种编码来解码字节呢?
发布于 2018-06-13 05:45:46
元数据应该使用i18n.commitEncoding
config value设置的值进行编码;只要创建了提交,就会将当前值复制到对象的“编码”头中;默认值是UTF-8。
该编码值在Dulwitch对象上作为'.encoding‘属性可用;如果它是None
,则i18n.commitEncoding
没有显式设置,您可以使用UTF-8作为默认值。
然而!实际存储的数据只跟在传递给git的任何字节之后,不需要重新编码。配置值纯粹是信息性的。因此,您需要考虑到使用了错误的编解码器,如果要使用object.encoding or 'utf8'
作为编解码器,请使用合理的错误处理程序或回退策略。
https://stackoverflow.com/questions/50825779
复制相似问题