繁体   English   中英

如何从C++中的十六进制字符串输出Unicode字符?

[英]How to output Unicode characters from hex string in C++?

我有一个名为str其中包含十六进制代码265A ,我想将其输出为 Unicode 字符,它应该是黑棋王。

所以这些是我已经尝试过的方法:

std::string str = "\u" + str;
std::cout << str;

但这给了我错误

error: incomplete universal character name \u

正在做

std::cout << "\u" << str;

也没有工作,出于同样的原因。

所以我尝试像这样使用wchar_t

wchar_t wc = strtol(str.c_str(), NULL, 16);
std::wcout << wc;

但这只是没有输出任何东西。

所以我真的不知道还能做什么。

你的strtol方法是正确的。 以下测试程序测试您可以A这种方式创建A

#include <string>
#include <cstdlib>
#include <iostream>

int main()
{
    const std::string str = "41";

    wchar_t wc = std::strtol(str.c_str(), NULL, 16);
    std::wcout << wc << std::endl;
}

您可能在输出方面遇到问题,或者您系统的wchar_t是某种非 Unicode 类型 - 您可以用类似的东西来证明这一点

std::wcout << wchar_t(65) << wchar_t(0x265A) << std::endl;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM