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

时间:2018-03-01 01:46:50

标签: c character-encoding

#include <iostream>
#include "windows.h"
void main()
{

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

此代码的结果是&#34; 0xB0A1&#34; (CP949) 这就是我想要的&#34; 0xAC00&#34; (UNICODE)

我尝试将项目配置属性字符集更改为UNICODE 但仍然没有工作

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

1 个答案:

答案 0 :(得分:2)

'가'是一个多字符字符常量,不适合单个字符 焦炭。您需要使用stddef.h中定义的wchar_t。也可以看看 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字节串。