当前位置: 首页 > 知识库问答 >
问题:

emacs中各种类型的“UTF-8”有什么不同

席嘉祯
2023-03-14

在Emacs中,在键入

M-x revert-buffer-with-coding-system

我可以看到许多类型的“utf-8”,例如,utf-8、utf-8-auto-unix、utf-8-emacs-unix等。

我在谷歌上搜索了他们,但找不到合适的答案。

附言。

我问这个问题是因为几个月前我遇到了一个编码问题。我用Emacs编写了一个php程序,在我的~/.Emacs中,我设置了

(prefer-coding-system 'utf-8)
<meta name="Content-Type" content="text/html; charset=UTF-8" />

所以我想学习更多关于Emacs中的编码。

共有1个答案

钱经赋
2023-03-14

编码名称的最后一部分(例如UTF-8-MAC)通常用于描述将在行尾使用的特殊字符:

  • -mac:cr,MacOS(直到OS X)的标准行分隔符
  • -UNIX:LFunice系统的标准分隔符(因此基于BSD的Mac OS X)
  • -DOS:CR+LFDOS/Windows的分隔符

其他一些编码参数包括:

  • -Emacs:支持编码所有Emacs字符(包括非Unicode)
  • -with-signature:强制使用BOM(见下文)
  • -auto:自动检测BOM

您可以将不同的可能性组合在一起,从而形成Emacs中显示的列表。

要获得有关编码提供的行尾类型、BOM和字符集的一些信息,可以使用description-coding-system或:c-hc

utf-8中,每个字符由一个字节表示(大于127的扩展字符除外,它们使用特殊的字节序列),因此指定字节顺序是无稽之谈,但无论如何,该签名对于检测utf-8文件而不是纯文本ASCII都是有用的。utf-8文件仅在扩展字符上与ascii文件不同,如果不解析整个文件,就无法检测到这一点,直到在伪BOM使其立即可见时找到一个字符。(顺便说一句,Emacs进行这种自动检测是非常有效的)

仅供参考,BOM是作为文件的第一个字节的以下字节:

  • UTF-16LE:ff fe
  • UTF-16BE:fe ff
  • UTF-8:EF BB BF

正如@wvxvw所说,您的问题可能是在文件的开头缺少BOM,这使得它被错误地解释和呈现。顺便说一句,M-X hexl-mode也是检查文件原始内容的非常方便的工具。感谢您为我指出它(我经常使用外部十六进制编辑器,而这可以直接在Emacs中完成)

 类似资料:
  • 项目 package.json 文件中通常会包含多种依赖,如下: { "name":"my-project", "dependencies":{ "package-a":"^1.0.0" }, "devDependencies":{ "package-b":"^1.2.1" }, "peerDependencies":{ "package-c":"^2.5.4" }, "

  • 问题内容: 使用firebug时,我在asp.net mvc 4项目中收到此有线错误“ NetworkError:415无法处理… xt / xml; charset = utf-8’– ”。 代码: 服务代码: 该接口是: 和网络配置,我在WCF中使用了无文件: 问题答案: 您需要使用,而不是代码中的常规。这将为端点配置适当的绑定()和行为()以遵守该属性。

  • 问题内容: 我想将jsoup解析为utf -8,但我不能。我尝试了我所知道的一切,然后在Google上进行了搜索。 我的目标是: 但是 不是。 请帮忙 问题答案: 淘汰 你好世界Öçasasa

  • 我正在使用Java,我正在尝试调查和学习健康市场科学的sqlBuilder源代码。您可以通过添加此maven依赖项来获取源代码。 文件BaseCreateQuery。类具有以下代码 我想知道这个类型(在第1行)是什么意思。这与Java中的泛型有关吗。我研究了Java中的泛型,但没有找到对这种类型的引用。TypeScript具有ThisType构造。这类似于Java中的这种类型吗?

  • 我尝试用JasperReport导出CSV文件,问题是当我想打印像“€”这样的货币时。 当我搜索解决方案时,我意识到这是关于文件编码的!我写这个代码! JasperReport导出的文件编码在“没有BOM的UTF-8”上。所以当我用Excel打开文件时,“€”看起来像“,”。但是当我用记事本打开文件时,“€”看起来像“€”。 在记事本上,我将文件编码转换为UTF-8(我认为是BOM),我保存文件。

  • 问题内容: 在ICU项目(也现在有一个PHP库)中包含有需要帮助恢复正常UTF-8串类,使搜索时更容易地比较值。 但是,我试图弄清楚这对应用程序意味着什么。例如,在哪种情况下,我想要“规范对等”而不是“兼容性对等”,反之亦然? 问题答案: 规范化归一化 Unicode包括多种编码某些字符(最著名的是重音字符)的方法。规范化规范将代码点更改为规范编码形式。生成的代码点应与原始代码点相同,除非字体或渲