相关疑难解决方法(0)

为什么u8'A'可以是char类型,而UTF-8最多可以是4个字节,char通常是1个字节?

我正在阅读wchar_t在一般编程中有什么用?并在接受的答案中发现了令人困惑的事情:

使用带有可变宽度编码的char更常见,例如UTF-8或GB 18030.

我从教科书中找到了这个:

图片

UTF-8的Unicode编码最多不是4个字节吗?char对于大多数平台是1字节.我误解了什么吗?


更新:

搜索和阅读后,现在我知道:

  1. 代码点和代码单元是不同的东西.代码点是唯一的,而代码单元依赖于编码.
  2. u8'a'(一个char,这里不是字符串)只允许用于基本字符集(ASCII及其控制字符的东西),它的值是相应的'a'的代码单元值,对于ascii字符,代码单位与代码点的值相同.(这是@codekaizer的回答)
  3. std::string::size() 返回代码单元.

那么编辑们都在处理代码单元吗?如果我将文件编码从utf8更改为uft32,那么大小?将是4

c++

8
推荐指数
2
解决办法
957
查看次数

标签 统计

c++ ×1