C ++:将无符号短变量的值打印为unicode字符

时间:2014-10-12 12:40:19

标签: c++ c unicode utf-8 character-encoding

我希望将孟加拉语字母打印到控制台,因为该字母的UTF-16低2字节存储在unsigned short变量中。

例如,对于字母(参考:

unicode值为 - 0985(十六进制)

我有,unsigned short unicodeChar = 0x0985;

现在,如何使用的值打印此unicodeChar字母?

注意:我已经尝试过这个 - cout << "\u0985";并正确打印

但我希望能够打印变量unicodeChar

所代表的字符

1 个答案:

答案 0 :(得分:1)

尝试使用const char *来存储值。

#include <iostream>

using namespace std;
int main()
{
    const char* uC = "\u0985";
    cout << uC << endl;
}

如果您想使用unsigned short的值,可以使用setlocale并按%lc打印:

#include <stdio.h>
#include <locale.h>
int main()
{
    if (!setlocale(LC_CTYPE, ""))
    {
        fprintf(stderr, "Error:Please check LANG, LC_CTYPE, LC_ALL.\n");
        return 1;
    }

    unsigned short unicodeChar = 0x0985;
    printf ("%lc\n",unicodeChar);
}