如何在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
:
#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;
相关文章:
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在 C++ 中将双精度数组中的值"force convert"到字符串输出中?
- 尝试从 Visual Studios C++ 中的加密字符串输出解密字符串时出现逻辑错误
- C++添加到字符串(输出)
- 如何将非空终止字符串输出到 iostream,但保持格式
- 有没有一种简单的方法可以将矢量 int 集转换为字符串输出?
- 为什么将字符串输出到未命名的 std::ofstream 反而给了我一个十六进制数?
- CodeBlocks字符串输出定界线
- 如何获得字符串输出的宽度
- 为什么 cout 使用 << 生成正确的字符串输出,而不是使用 +?
- 是通过std :: Wostream定义的char*字符串输出
- 简单的字符串输出不符合预期(出现换行符)
- 使用字符串输出特定答案
- 如何在C++中从十六进制字符串输出 Unicode 字符
- 如何获取md5sum命令并获取代码中的字符串输出
- 需要帮助格式化字符串输出
- 快速C++字符串输出
- 与具有字符串输出参数的 WinAPI 函数的一致性是多少
- 用C++将二进制字符串输出到二进制文件
- Linux控制台的国际UTF-32字符串输出