Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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克隆为utf8而不是us ascii_Git_Github_Encoding_Utf 8_Ascii - Fatal编程技术网

git克隆为utf8而不是us ascii

git克隆为utf8而不是us ascii,git,github,encoding,utf-8,ascii,Git,Github,Encoding,Utf 8,Ascii,当我从GitHub运行git clone SOMEREPO时,收到的文件为us ascii: $file-bi index.php 文本/纯文本;字符集=美国ascii码 如何在utf8中接收它们 谢谢git clone将在存储库中按原样检索文件。如果你想使用uf8,你必须转换它们 在根文件夹中运行该脚本,并提交更改。请注意,git有时无法检测编码更改 #!/bin/sh find . -type f -print | while read f; do mv -i "$f"

当我从GitHub运行
git clone SOMEREPO
时,收到的文件为
us ascii


$file-bi index.php
文本/纯文本;字符集=美国ascii码

如何在
utf8
中接收它们


谢谢

git clone将在存储库中按原样检索文件。如果你想使用uf8,你必须转换它们

在根文件夹中运行该脚本,并提交更改。请注意,git有时无法检测编码更改

#!/bin/sh

find . -type f -print | while read f; do
        mv -i "$f" "$f.recode.$$"
        iconv -f us-ascii -t utf-8 < "$f.recode.$$" > "$f"
        rm -f "$f.recode.$$"
done
#/垃圾箱/垃圾箱
找到-f型-读取f时打印|;做
mv-i“$f”“$f.recode.$$”
iconv-f us ascii-t utf-8<“$f.recode.$$”>“$f”
rm-f“$f.重新编码。$$”
完成
如果您的编辑器使用美国ascii码对文件进行编码,您可能会对其进行更改。如果不是,那么有一个解决方案,就是在每次提交之前让git用utf8编码您的文件


对于这一部分,您可以在这里查看:

有两种方法可以检测文件是否为utf-8:隐式或显式。在隐式形式中,您必须查看内容并尝试猜测:记住utf-8是ASC-II的超集,因此,如果您实际上在特定文件中未使用任何utf-8特殊字符,则无法区分它是utf-8还是ASC-II,因此猜测工具将假定为ASC-II

在显式格式中,文件开头有一个BOM(字节顺序标记),通知它是用于UTF-8的。这是从USC-2/UTF-16背景中借用的,因为在那里需要它来通知编码和字节顺序。在UTF-8中没有字节顺序(或者,如果您愿意,它是不可知的)

隐式形式在Linux和几乎所有符合utf-8的系统中都很常见,不建议使用显式形式。例外(通常)是Windows,大多数编辑器只能猜测是否有BOM,因为utf-8不完全受本机支持(通常的形式是代码页或UCS-2,慢慢向utf-16发展,UCS-2是前者的一个较差子集,每个字符缺少两个以上的正确字节)


如果您希望某个特定工具采用utf-8而不是ASC-II,则可能需要提供BOM(显式表单)或对其进行配置,甚至需要对其进行更改。也就是说,apache http服务器可以通过查看文件内容来假定asc ii,但您可以覆盖设置,使其无条件地报告utf-8(或其他方式)。

一点是,
us ascii
utf8
的子集。如果您的文档中没有任何非ASCII字符,
文件
将以
us ASCII
的形式接收它。实际上,我的文件已经是UTF8格式的(我正在使用OSX,可能是正在进行某些转换的操作系统?)。我不是OSX用户,我不知道是否有热转换,但这是可能的。有些编辑器同时具有意见和保存编码,但它们是不同的。