Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git在Linux容器上与非ascii字符混淆_Linux_Git_Character Encoding - Fatal编程技术网

Git在Linux容器上与非ascii字符混淆

Git在Linux容器上与非ascii字符混淆,linux,git,character-encoding,Linux,Git,Character Encoding,我有一个.Net核心(C#)项目,其中一个类中有以下行: var输入=” 但是,当我在Docker容器中进行git克隆时(microsoft/dotnet:2.2-sdk),它会把它搞砸并显示为�(在bash中使用cat) 当我运行它时,它的Utf-8字节是[2391189]=[EF,BF,BD],这似乎是所谓的 我使用的Windows编辑器是VS 2017,但字符在其他Windows计算机上正确显示,并通过dotnet run/test命令正确解析,因此我认为这不是错误保存字符的问题 你知道我

我有一个.Net核心(C#)项目,其中一个类中有以下行:

var输入=”

但是,当我在Docker容器中进行git克隆时(
microsoft/dotnet:2.2-sdk
),它会把它搞砸并显示为
(在
bash
中使用
cat

当我运行它时,它的
Utf-8
字节是
[2391189]=[EF,BF,BD]
,这似乎是所谓的

我使用的Windows编辑器是VS 2017,但字符在其他Windows计算机上正确显示,并通过
dotnet run/test
命令正确解析,因此我认为这不是错误保存字符的问题

你知道我为什么会看到如此混乱的局面以及如何解决吗

一些细节

  • 我使用
    Encoding.UTF8.GetBytes(“£”)获取字节
  • 它在
    windows10
    机器上运行良好
  • Linux版本
    Debian GNU/Linux 9(stretch)
    来自
    cat/etc/os发行版
  • locale-a
    返回
    C
    C.UTF-8
    POSIX
  • 在Windows Notepad++上,当打开时,声明为ANSI并正确显示
正在运行
fgrep'var input'file.cs | od-tx1-c

0000100  76  61  72  20  69  6e  70  75  74  20  3d  20  22  a3  22  3b
          v   a   r       i   n   p   u   t       =       " 243   "   ;

您的文件包含一个单字节
a3
,它对应于字符
的Windows-1252编码。您的Linux系统显示
因为它不是有效的UTF-8编码


您应该将Visual Studio配置为使用UTF-8而不是Windows-1252。

在Windows上的编辑器(或IDE项目)中使用哪种字符编码?Linux上使用哪种语言环境?…全局和项目的Git配置文件/设置是什么。你用过Git钩子吗?@Bodo Windows上的编辑器是Visual Studio。但在另一台windows笔记本电脑上克隆时,它工作正常,因此我认为问题不在windows上end@bodo
locale-a
显示
C.UTF-8 POSIX
@eddyP23请您的问题添加所有请求的信息,而不是在注释中回答。可能Windows和Linux使用不同的编码。在Linux上,请运行
fgrep'var input'yourfile | od-tx1-c
。在Windows上,当您在记事本++中打开文件时,可以尝试找出文件的编码。记事本++中显示的字符正确吗?“编码”菜单中选择了什么?如果字符显示不正确,请尝试其他编码。