git gui - 可以显示UTF16吗?

Jos*_*phH 3 git diff utf-16 git-gui

有没有办法以某种方式git gui显示和显示UTF16文件的差异?

我找到了一些信息,但这主要是指命令行而不是gui.

Ken*_*Ken 5

我一直在一个从msysGit人帮助更好的解决方案,并已经提出了这种清洁/涂抹过滤器.过滤器使用Gnu文件和iconv命令来确定文件的类型,并将其转换为msysGit的内部UTF-8格式.

这种类型的清洁/涂抹过滤器为您提供了更大的灵活性.它应该允许Git在大多数情况下将混合格式文件视为UTF-8文本:diffs,merge,git-grep,以及golattributes属性,如eol-conversion,ident-replacement和内置diff模式.

上面概述的diff滤波器解决方案仅适用于差异,因此受到更多限制.

要设置此过滤器:

  1. 获取Gnu libiconv,并提交文件并安装.
  2. 确保GnuWin32\bin目录(通常为"C:\ Program Files\GnuWin32\bin")位于%PATH%
  3. 将以下内容添加到〜\ Git\etc\gitconfig:

    [filter "mixedtext"]
        clean = iconv -sc -f $(file -b --mime-encoding %f) -t utf-8
        smudge = iconv -sc -f utf-8 -t $(file -b --mime-encoding %f)
        required
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在全局〜/ Git/etc/gitattributes或本地〜/ .gitattributes中添加一行来处理混合格式文本,例如:

    *.txt filter=mixedtext
    
    Run Code Online (Sandbox Code Playgroud)

我在使用ANSI,UTF-16和UTF-8格式的sql文件的目录上使用了它.它到目前为止工作.除了任何意外,这看起来像20%的努力可以覆盖所有Windows文本格式问题的80%.