UTF-8、UTF-16 和 UTF-32 之间有什么区别?
我知道它们都将存储 Unicode,并且每个都使用不同数量的字节来表示一个字符。选择一个比另一个有优势吗?
UTF-8 在 ASCII 字符代表文本块中的大多数字符的情况下具有优势,因为 UTF-8 将这些字符编码为 8 位(如 ASCII)。另一个优点是仅包含 ASCII 字符的 UTF-8 文件与 ASCII 文件具有相同的编码。
UTF-16 在 ASCII 不占优势的情况下更好,因为它主要使用每个字符 2 个字节。UTF-8 将开始为高阶字符使用 3 个或更多字节,而 UTF-16 对大多数字符仅保留 2 个字节。
UTF-32 将覆盖 4 个字节中所有可能的字符。这使它非常臃肿。我想不出使用它有什么好处。