gpt4 book ai didi

c++ - 为什么 C++11 引入了 char16_t 和 char32_t 类型

转载 作者:太空狗 更新时间:2023-10-29 19:39:23 25 4
gpt4 key购买 nike

为什么 C++11 标准引入了 char16_tchar32_t 类型? 1 字节不足以存储字符吗?扩展字符类型的大小是否有任何目的?

最佳答案

1 个字节永远不够。存在数百种 Ansi 8bit 编码,因为人们一直试图将不同的语言塞入 8bit 限制的范围内,因此相同的字节值在不同的语言中具有不同的含义。然后Unicode出现来解决这个问题,但它需要16位来完成(UCS-2)。最终,世界语言的需求超过了 16 位,因此创建了 UTF-8/16/32 编码来扩展可用值。
char16_tchar32_t(以及它们各自的文本前缀)被创建以在所有平台上以统一的方式处理 UTF-16/32。最初有 wchar_t ,但它是在 Unicode 刚出现时创建的,它的字节大小从未标准化,直到今天。在某些平台上,wchar_t 是 16 位 (UTF-16),而在其他平台上,它是 32 位 (UTF-32)。多年来,在跨平台交换 Unicode 数据时,这导致了大量互操作性问题。 char16_tchar32_t 最终被引入以在所有平台上具有标准化的大小 - 分别为 16 位和 32 位 - 和语义。

关于c++ - 为什么 C++11 引入了 char16_t 和 char32_t 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com