wchar_t在一般编程中有什么用途
What is the use of wchar_t in general programming?
今天我学习了一些C++基础知识,了解了wchar_t
。我不明白,为什么我们真的需要这个数据类型,我该如何使用它?
wchar_t
用于表示固定宽度、多字节编码中的文本;由于CCD_ 3的大小通常为2字节,因此它可以用于表示任何2字节编码中的文本。它也可以用于表示可变宽度多字节编码中的文本,其中最常见的是UTF-16。
在wchar_t
大小为4字节的平台上,它可以用来表示使用UCS-4(Unicode)的任何文本,但由于在大多数平台上它只有2字节,因此它只能以可变宽度编码(通常为UTF-16)表示Unicode。更常见的是使用具有可变宽度编码的char
,例如UTF-8或GB 18030。
目前唯一广泛使用wchar_t
的操作系统是Windows;这是因为Windows在扩展超过U+FFFF之前就采用了Unicode,因此固定宽度的2字节编码(UCS-2)似乎是合理的。现在UCS-2不足以表示整个Unicode,因此Windows使用UTF-16,仍然使用wchar_t
2字节代码单元。
wchar_t
是一个宽字符。它用于表示比常规char
需要更多内存来表示的字符。例如,它在Windows API中被广泛使用。
然而,wchar_t
的大小取决于实现,并且不能保证大于char
。如果您需要支持大于8位的特定形式的字符格式,您可能需要使用char32_t
和char16_t
,它们分别保证为32位和16位。
wchar_t
用于存储代码大于255的字符(其值大于char
所能存储的值)。
CCD_ 16可以取256个不同的值,这些值对应于ISO拉丁表中的条目。另一方面,宽字符可以取65536个以上的值,这些值对应于Unicode值。它是最近的一项国际标准,允许对几乎所有语言和常用符号的字符进行编码。
我知道他们中的大多数人都已经回答了这个问题,但由于我也在学习C++基础知识,并且了解了wchar_t
,我想告诉你我在搜索后了解了什么。
-
wchar_t
在需要存储ASCII 255以上的字符时使用,因为这些字符的大小大于我们的字符类型"char"。因此,需要更多的内存。例如:
wchar_t var = L"Привет мирn"; // hello world in russian
-
它的大小通常大于8位字符。
-
windows操作系统大量使用它。
-
它通常在涉及外语时使用。
wchar_t数据类型用于显示wide characters that will occupy 16 bits
。此数据类型占用"2或4"个字节。
当使用日语等国际语言时,大多使用wchar_t
数据类型。
wchar_t大小取决于语言环境,按照标准,它可以表示语言环境支持的最大扩展字符集的所有成员。
wchar_t
在C++语言中的[basic.basic]/p5中指定为:
类型
wchar_t
是一种不同的类型,其值可以表示在支持的区域设置([locale])中指定的最大扩展字符集的所有成员的不同代码。
换句话说,wchar_t
是一种数据类型,它可以处理包含任何语言中的字符的文本,而无需担心字符编码。
在基本多语言平面以上支持Unicode的平台上,wchar_t
通常为4字节(Linux、BSD、macOS)。
由于历史原因(Windows最初仅支持UCS2),仅在Windows上wchar_t
为2字节,并使用UTF-16LE编码。
在实践中;1个CCD_ 26=1个字符";由于Unicode支持组合字符和字形(由代码点序列表示的字符),这个概念变得更加复杂。
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 单引号在C++数学编程中是什么意思?
- 对于 C 和 C++ 中的嵌入式编程,计时器类中的计数是什么意思?
- 什么是编程语言支持定义您自己的自定义运算符?
- 当您希望在Arduino Uno编程中同时执行不同函数时,使用什么代码/语句
- 在C++编程中继续下一行的另一种方法是什么?
- 这是什么意思?C++基本编程
- 我在用c ++编程时一直遇到LNK2005错误,我似乎无法弄清楚问题是什么
- 在编程中某些东西是可传递的是什么意思
- 代币做什么?为什么需要在C++编程中创建代币
- 我需要知道什么才能开始用c++/其他语言编程合成器
- AMD和英特尔的C++编程有什么区别
- 本地主机在套接字编程以及一般应用中需要什么
- 在 C 编程中可以有三重减号吗?什么意思
- MPI 中套接字编程的 select() 等效于什么?
- wchar_t在一般编程中有什么用途
- 在什么编程语言游戏引擎上编写"Frostbit 3"?
- 在任何编程语言中,递增和递减运算符的功能是什么?
- 我应该为接口还是抽象基类编程?该短语到底是什么意思
- 什么编程语言最适合通过Arduino上的传感器控制屏幕上的动画?Java语言C++