git tree对象文件名charset编码

时间:2013-06-24 11:09:40

标签: git character-encoding encode

当我添加并提交新文件时,文件名为“À” char'À'不是ascii,并使用命令

  

git cat-file -p master ^ {tree}

结果:

  

100644 blob 78981922613b2afb6025042ff6bd878ac1994e85“\ 303 \ 200”

我知道字符串“\ 303 \ 200”是文件名“À”,但它是如何产生的?

git cat-file如何编码非ascii char文件名?

1 个答案:

答案 0 :(得分:2)

它存储在UTF-8 encoding中。你看到的是这种编码用C风格octal notation表示。

字母“À”是Unicode字符192,或二进制00011000000。根据UTF-8的规则,这被分为两个字节110xxxxx10xxxxxx,因此1100001110000000。对于八进制表示法,这些分组为11-000-011303,小数3 *8²+ 3 = 195)和10-000-000200,小数2 *8²= 128)。< / p>