【发布时间】:2019-03-12 09:55:30
【问题描述】:
“我们检测到文件编码为 ISO-8859-1。当您提交更改时,我们会将其转码为 UTF-8”
这是我尝试上传 Windows 1252 .txt 文件时 GitHub 显示的内容。
结果:UTF-8 无法识别的所有字符都显示为 �
我的 ATOM 编辑器已成功使用 Windows 1252 作为默认设置,但分阶段更改窗口显示的是 �。
如何阻止 GitHub 这样做?
【问题讨论】:
-
文件为 win-1252 是否有特定原因?因为如果没有,您可能应该在文本文件上使用更通用的 utf-8 编码。 Windows 8 位编码的问题在于,当您在设置为不同语言的计算机上打开特殊字符时,它们看起来会有所不同,并且 无法 检测文件的原始预期编码是什么。
-
是的,因为我的文件中有很多字符,例如 Š/š 和 Ž/ž,UTF-8 不支持这些字符
-
其实utf-8支持all个unicode字符。你只需要正确转换它。
-
问题似乎更多是转换为 UTF-8 时被检测为 ISO-8859-1 的文件之一; Windows-1252 是 ISO-8859-1 的超集,Š/š 和 Ž/ž 不是 ISO-8859-1 的一部分,而是 Windows-1252 的一部分。因此,如果在转换为 UTF-8 时假定 ISO-8859-1,这些映射到 � 的事实是“预期的”。
-
@Deduplicator 我知道。但是 utf-8 有严格的位规则,它必须遵循才能有效,所以它仍然很容易检测。同时,除了基于语言的启发式之外,没有办法区分 8 位扩展 ascii 编码的 >0x80 内容。
标签: github encoding utf-8 windows-1252