当我添加并提交新文件时,文件名为“À” char'À'不是ascii,并使用命令
git cat-file -p master ^ {tree}
结果:
100644 blob 78981922613b2afb6025042ff6bd878ac1994e85“\ 303 \ 200”
我知道字符串“\ 303 \ 200”是文件名“À”,但它是如何产生的?
git cat-file如何编码非ascii char文件名?
答案 0 :(得分:2)
它存储在UTF-8 encoding中。你看到的是这种编码用C风格octal notation表示。
字母“À”是Unicode字符192,或二进制00011000000
。根据UTF-8的规则,这被分为两个字节110xxxxx
和10xxxxxx
,因此11000011
和10000000
。对于八进制表示法,这些分组为11-000-011
(303
,小数3 *8²+ 3 = 195)和10-000-000
(200
,小数2 *8²= 128)。< / p>