美文网首页
Windows 下 git-bash log 乱码的原因及方案

Windows 下 git-bash log 乱码的原因及方案

作者: JSTZ | 来源:发表于2020-05-02 09:16 被阅读0次

    前言

    在 Windows 下用 git log 来看历史提交记录时,如果提交消息是中文,有可能就会乱码。为什么说有可能呢?不知道 git-bash 抽什么风,我刚安装时不乱码,用几天后就乱码了。这个原因我没有找到。关于怎么解决乱码的方式,网上有很多人写了,大致就是下面的这些:

    如果 git-bash 用的不是 Windows 自带的控制台(安装时的默认选项),先在设置 Options -> Text -> Locale
    中选择 UTF-8,再运行下面的代码:

    git config --global i18n.commitencoding utf-8
    git config --global i18n.logoutputencoding utf-8
    export LESSCHARSET=utf-8
    # 在 git-bash 的 Options -> Text -> Locale 中选择 utf-8
    

    如果 git-bash 用的是 Windows 自带的控制台,运行下面的代码:

    git config --global i18n.commitencoding utf-8
    git config --global i18n.logoutputencoding gbk
    export LESSCHARSET=latin1
    

    两者存在 utf-8/gbk 和 utf-8/latin1 的区别。

    乱码原因

    git-bash 在执行 git log 显示历史记录时需要经历下面这几步:

    1. 读取保存好的历史。
    2. 转换数据的编码。
    3. 将数据传递给 less 来控制分页。
    4. 终端显示。

    这 4 步刚好对应的前面所说的 4 个设置。

    设置 作用
    i18n.commitencoding 在 commit 时保存的编码
    i18n.logoutputencoding 读取数据后要转换的目标编码
    LESSCHARSET 指定 less 接受的编码
    Options -> Text -> Locale 界面输出能接受的编码

    这是我目前的理解,以后有新的理解再补充。

    相关文章

      网友评论

          本文标题:Windows 下 git-bash log 乱码的原因及方案

          本文链接:https://www.haomeiwen.com/subject/cwihghtx.html