C++基础(十七)宽字符、wchar | 您所在的位置:网站首页 › 中文乱码转化成英文 › C++基础(十七)宽字符、wchar |
上一篇文章介绍了char字符串有关的一些操作,strlen接口的实际含义,以及“一个中文占两个字节”的真实含义。 char的最初设计只是为了满足英文的需求,计算机普及后各个国家和地区开始针对本地的语言进行字符编码设计,中文也是其中之一。显而易见,一个字节(char)是无法满足这些编码需求的,于是不同语言的规定一个本地字符所占字节数不定,“多字节字符集”就是这么来的。含义就是多个字节表示一个字符,一个字符可能对应一个字节,也可能对应2个甚至更多的字节。 这种处理多字节很多时候对程序而言并不友好,随着硬件的快速发展,内存不再是计算机和程序的主要制约因素,于是很多高级编程语言就想,不管什么字符,全部用两个字节表示,那就可以大大提高程序(或者操作系统)对字符的处理能力。 C++语言自然也紧随潮流,设计了wchat_t字符,即宽字符,它不管具体字符是什么,全部按照两个字节来编码。为了和传统的char字符区分,wchar_t字符(串)在申明的时候,需要加上大写字母“L”。既然有wchar_t,标准库自然有其对应的字符串:wstring。 除此之外,还要注意,想要用标准输入输出流打印宽字节字符(串),不能用std::cout,需要用std::wcout;同样,如果是文件流,不能用fstream,需要用wfstream。 请看下面代码(vs2019,): #include #include int main() { using namespace std; const wchar_t* pwValue = L"I Love C++"; wstring strValue = pwValue; cout |
CopyRight 2018-2019 实验室设备网 版权所有 |