Unicode 到整数转换 visual studio 错误
Unicode to integer conversion visual studio bug
我正在尝试将 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;
}
问题:
鼠标悬停变量 'a' 显示它的 129408 或 0x1F980 是正确的但是当它打印到控制台时我得到 55358
我创建了一个新项目并编写了相同的代码,它打印出正确的值,但是在将同一项目从 unicode 切换到多字节再切换回 unicode 后,它产生了这个问题,不知道如何解决这个问题。
Visual Studio 中的宽字符只有 16 位,这意味着它们不会持有大于 65535 的值。您将获得以 UTF-16 编码的字符的前半部分,即 d83e dd80 .
我正在尝试将 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;
}
问题: 鼠标悬停变量 'a' 显示它的 129408 或 0x1F980 是正确的但是当它打印到控制台时我得到 55358
我创建了一个新项目并编写了相同的代码,它打印出正确的值,但是在将同一项目从 unicode 切换到多字节再切换回 unicode 后,它产生了这个问题,不知道如何解决这个问题。
Visual Studio 中的宽字符只有 16 位,这意味着它们不会持有大于 65535 的值。您将获得以 UTF-16 编码的字符的前半部分,即 d83e dd80 .