【问题标题】:Unicode file in notepad [closed]记事本中的Unicode文件[关闭]
【发布时间】:2012-12-03 09:53:08
【问题描述】:

在记事本中将文本文件另存为“Unicode”是什么意思?是 Utf-8、Utf-16 还是 Utf-32?提前致谢。

【问题讨论】:

标签: unicode unicode-string


【解决方案1】:

在记事本中,与一般的 Windows 软件一样,“Unicode”作为编码名称表示 UTF-16 Little Endian (UTF-16LE)。 (我一开始以为它不是真正的UTF-16,因为Notepad++将其识别为UCS-2并将内容显示为垃圾,但用BabelPad重新检查,我得出结论,Notepad甚至可以正确编码非BMP字符。)

同样,“Unicode 大端”表示 UTF-16 大端。而“ANSI”是指系统的原生传统编码,例如西方版本 Windows 中的 8 位 windows-1252 编码。

【讨论】:

  • @Jukka K. Korpela... 哪一个会涵盖最多的角色?? Unicode 还是 UTF-8 ?
  • UTF-16 和 UTF-8 覆盖完全相同的字符;它们只是 Unicode 的两种传输编码。 Windows 使用名称“Unicode”来表示 UTF-16,只是因为它在内部使用 UTF-16 表示 Unicode。
  • @Qaesar 每个 UTF 都可以编码所有的 Unicode。
  • @ Jukka K. Korpela,我正在处理一种称为库尔德语的印度-厄鲁普语。为了进行良好的文本处理,我应该保存哪种 Unicode? Unicode 还是 UTF-8?他们是一样的吗?
  • @Qaesar,任何合理的文本处理软件都可以读取 UTF-16(Windows “Unicode”)和 UTF-8,如果需要,它会转换为它的内部表示。如果您编写自己的程序代码,您只需要从库中选择合适的输入读取例程。所以这并不重要。 Windows 软件内部使用 UTF-16。但是对于网页,应该使用UTF-8(浏览器和搜索引擎对UTF-16的支持很差)。
【解决方案2】:

所有这些格式都是“Unicode”。但通常 Mac 和 Windows 上的编辑器表示 UTF-8,因为它在代码 128 IIRC 以下与 ASCII 兼容。 UTF-8 可以通过使用特殊字符来表示比 256(适合 8 位的单个字节)更多的代码,这意味着后面的字节也属于同一个字符。

如果您查看终端中的输出,例如使用 vi,并且如果您看到每两个字符之间有一个空格,那么您正在查看 UTF-16,因为每两个字节构成一个字符。您应该看到的是字符之间没有空格,这是 UTF-8 的指示。

【讨论】:

  • @Cocoanetics,如果编辑的意思是UTF-8,那为什么在记事本保存文件中还有一个名为UTF-8的选项?
  • ... 因为 Windows 很奇怪。当 Windows 开始尝试使用 unicode 时,他们首先采用了 UTF16(参见另一个答案)并将其称为“Unicode”。尽管从长远来看,UTF8 开始在各处使用,并已成为事实上的标准。
猜你喜欢
  • 1970-01-01
  • 2016-11-14
  • 1970-01-01
  • 2014-03-19
  • 2012-05-10
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多