bob*_*555 1 c++ windows unicode visual-studio-2022
我试图将 unicode 字符转换为整数,并在 Visual Studio 中遇到错误,不确定它是错误还是我做错了什么
该项目具有 unicode 字符集,而不是多字节。
#include <windows.h>
#include <iostream>
int main()
{
constexpr int a = L'';
printf("%i\n", a);
std::cout << a << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题:鼠标悬停变量“a”显示其 129408 或 0x1F980 这是正确的,但当它将其打印到控制台时,我得到 55358
我创建了一个新项目并编写了相同的代码,它打印出了正确的值,但是在将同一项目从 unicode 切换到多字节并返回到 unicode 后,它产生了这个问题,不知道如何解决这个问题。
Visual Studio 中的宽字符只有 16 位,这意味着它们不会容纳大于 65535 的值。您将获得以 UTF-16 编码的字符的前半部分,即 d83e dd80。
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |