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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C / C ++如何读取UNICODE的const char?相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

答案

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

所以,如果你想要unicode值:

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


int main(void)
{

    wchar_t wide = L'가';

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

    return 0;
}

这打印:

Unicode: 0xAC00

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

以上是关于C / C ++如何读取UNICODE的const char?的主要内容,如果未能解决你的问题,请参考以下文章

C怎么逐个读取一个字符串数组里的数据

如何读取文件的编码信息 c语言

如何在C#中unescape unicode字符串

C语言字符串读取数字

C语言如何读取文件?

Socket: Java Client 与 C Server 传输数据中文乱码问题