侧边栏壁纸
  • 累计撰写 92 篇文章
  • 累计创建 98 个标签
  • 累计收到 10 条评论

目 录CONTENT

文章目录
Git

Git问题-乱码

汤圆学Java
2022-07-26 / 0 评论 / 0 点赞 / 124 阅读 / 1,181 字
温馨提示:
本文最后更新于 2022-07-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

Git使用中遇到的乱码问题总结,目前遇到的是下面这几种,有新遇到的再更新

以下乱码都是针对 Windows;

目录

  1. git log 中文显示为十六进制乱码
  2. git status 中文文件名显示为八进制乱码

正文

1. git log 中文显示为十六进制乱码

问题描述:运行git log查看记录时,如果message是中文,则会显示为乱码,如下所示:

<E4><A1><1B><E4><A1><1B><E4><A1><1B><E4><A1><1B>

因为我是解决之后才写的这个总结,所以无法贴出原始的乱码,只能描述乱码的格式,如上所写类似16进制;

原因分析:是git-for-windows旧版本的问题;

解决办法:下载最新的git-for-windows安装即可;下载链接:Git - Downloading Package (git-scm.com)

2. git status 中文文件名显示为八进制乱码

问题描述:运行git status查看工作区的状态时,如果文件名是中文,则会显示为乱码,如下所示:

E:\project\>git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   "Git\345\210\206\346\224\257\350\267\237\350\270\252-\346\230\240\345\260\204.md"

这里的乱码其实是中文显示成了8进制;

原因分析

  • 是编码问题,通过下图的解释可以看到,当输出路径的字符为unusual(即非通用字符,这里指的是ASCII中无法表示的字符,ASCII只能表示到0x7F),Git会对其进行转义;
  • 而中文肯定是不在这个通用字符中的,所以会进行转换;
  • 通过将core.quotepath设置为false可以关闭这个转换;

image-20220726093732629

解决办法:修改配置,git config --global core.quotepath false

总结

如果是git log乱码,中文显示为十六进制,类似<E4><A1><1B><E4><A1>这样,则可以通过下载新版本的git-for-windows来解决;

如果是git status乱码,中文文件名显示为八进制,类似\345\210\206这样,则可以通过git config --global core.quotepath false来解决;

0

评论区