git克隆为utf8而不是us ascii
当我从GitHub运行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"
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用户,我不知道是否有热转换,但这是可能的。有些编辑器同时具有意见和保存编码,但它们是不同的。