Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
GitHub用户使用不同的字符编码编辑文本_Git_Github_Character Encoding - Fatal编程技术网

GitHub用户使用不同的字符编码编辑文本

GitHub用户使用不同的字符编码编辑文本,git,github,character-encoding,Git,Github,Character Encoding,(我记得不久前读过这个问题的解决方法,但找不到帖子!) 我通过github与研究助理互动。我在linux机器上工作,其他人在mac或windows上工作 编辑文本时,特殊字符通常会出现问题。是否有一种方法可以将存储库的字符编码设置为UTF-8(作为我的机器),同时让其他人在编辑文件时依赖其本机字符编码?(表明并非所有的都是严格的,我总是对字符编码问题感到困惑…) 是否有一个协议,以防止混乱的文字时,拉他们的工作 谢谢大家! 我不确定,但我可以建议在全局配置中进行设置,我可以想到的另一种方法是创建

(我记得不久前读过这个问题的解决方法,但找不到帖子!)

我通过github与研究助理互动。我在linux机器上工作,其他人在mac或windows上工作

编辑文本时,特殊字符通常会出现问题。是否有一种方法可以将存储库的字符编码设置为UTF-8(作为我的机器),同时让其他人在编辑文件时依赖其本机字符编码?(表明并非所有的都是严格的,我总是对字符编码问题感到困惑…)

是否有一个协议,以防止混乱的文字时,拉他们的工作


谢谢大家!

我不确定,但我可以建议在全局配置中进行设置,我可以想到的另一种方法是创建自定义git钩子。

如果您有文本文件,git通常假定它们是UTF-8格式的,除非另有规定。您可以使用其他编码,但如果您在存储库中使用其他编码,则像
git diff
这样的东西可能会或可能不会像您预期的那样发挥作用

话虽如此,在工作树中使用其他编码对于使用其他系统(尤其是Windows)的人来说是很有用的。不幸的是,即使在2020年,仍有许多Windows程序无法与UTF-8协同工作,只能在带BOM的little endian UTF-16中运行。允许人们在自己的系统上指定自己的工作树编码设置,这对这些人很有帮助。如果您的项目使用的语言必须是UTF-8,比如Go或Rust,那么这可能不是问题,因为使用UTF-16的工具根本不起作用

您可以在存储库中指定一个
工作树编码=UTF-8
,如果输入不是UTF-8,这将导致Git执行无操作编码并失败。这将使它稍微慢一点,但它将保护您免受用户的攻击,否则用户会将无效内容放入代码库(假设无效内容不是有效的UTF-8)。如果用户愿意,仍然可以在
.git/info/attributes
中覆盖该设置

您可能还希望设置一个
.editorconfig
文件,该文件告诉用户的编辑器这些文件将采用UTF-8格式。有些编辑器具有对的本机支持,有些编辑器需要插件,但这是一个选项。请注意,如果您这样做,人们将很难在他们的个人系统上覆盖编码,如果他们愿意的话