【发布时间】:2019-08-10 15:36:23
【问题描述】:
我在 Windows 的记事本中创建了一个文本文件,并使用 Unicode 编码保存了它。该文件完全为空白,并按预期保存为 0 字节大小。
我再次将它(仍然是空文本文件)保存为 utf - 8 编码,并以 3 个字节的大小保存。
谁能解释这 3 个字节的来源。
干杯
【问题讨论】:
-
我不知道那是什么。我跟着你的链接回来了,这似乎很合理。谢谢
-
注意:“Unicode”不是编码。 Unicode编码有很多。微软再次表现出无能(为了简化给用户,这会让他们感到困惑)。我在记事本中的选项:“ANSI”(这是错误的,ANSI 是 ASCII,或者最终是 Latin1 [所以没有 Windows 使用的某些字符]),“Unicode”(什么??),“Unicode big endian”(开始变得疯狂) 和“UTF-8”(最后是一种编码)。
-
Microsoft 由于历史原因交替使用术语 Unicode 和 UTF-16 LE。早在 Windows NT 开始工作时,Microsoft 就决定在内部使用 Unicode。考虑到那是 1989 年,这是一个直率的举动。他们“选择”了 UCS-2,因为当时只有 UCS-2。随着 Windows 2000 的发布,NT 已更新为支持 UTF-16。不过,Unicode 仅意味着一件事:UTF-16 LE。为了消除歧义,记事本现在提供了以下保存文件的选项:"ANSI"、"UTF-16 LE"、"UTF-16 BE"、"UTF-8" 和 "UTF-8 with BOM".