学如逆水行舟,不进则退
心似平原跑马,易放难收
字符本质上还是数字,其显示的是什么是编码规范的事。
ASCII码编码是从0~127,然后往后字母扩展。
中文规范是双字节的。
Unicode是万国码。
char
占用一个字符,是ASCII编码
wchar_t
占两个或四个字符,宽字节字符,可以显示中文,在显示英文就浪费资源了,用std::wcout
才能输出对应的字符,要不只能输出对应的数字。
char16_t
占2个字节,采用utf-16,用u
初始化,如char16_t A{u’A’}
char32_t
占4个字节,采用utf-32标准,用U
初始化,如char32_t A{U’A’}
示例代码如下
#include <iostream>
using namespace std;
int main()
{
char A1{ 'A' };
char A2{ 65 };
cout << A1 << endl << A2 << endl;
wchar_t A3{ L'A' };
cout << endl << A3 << endl;
wcout << A3 << endl;
}
结果如下