C / C ++如何读取UNICODE的const char?

问题描述 投票:1回答:1
#include <iostream>
#include "windows.h"
void main()
{

    printf("0x%x", '가');
    system("pause");
}

这段代码的结果是“0xB0A1”(CP949)这就是我想要的“0xAC00”(UNICODE)

我尝试将项目配置属性字符集更改为UNICODE但仍然无法正常工作

如果你能给我一些帮助,我真的很感激。谢谢

c character-encoding
1个回答
2
投票

'가'是一个多字符字符常量,不适合单个字符。您需要使用wchar_t中定义的stddef.h。另见wchar.h

所以,如果你想要unicode值:

#include <stdio.h>
#include <stddef.h>


int main(void)
{

    wchar_t wide = L'가';

    printf("Unicode: 0x%X\n", wide);

    return 0;
}

这打印:

Unicode: 0xAC00

但是,如果你执行wchar_t wide = '가';,你会得到一个警告,当你运行它时,会输出0xEAB080,它是UTF8字节串。

© www.soinside.com 2019 - 2024. All rights reserved.