c++ - 十六进制转unicode字符

标签 c++ unicode character hex

在 C++ 中,我想将十六进制字符串作为 unicode 字符保存到文件中 例如:0x4E3B 保存到文件 ---> 主

如有任何建议或想法,我们将不胜感激。

最佳答案

什么编码?我假设是 UTF-8。

什么平台?

如果你在Linux下那么

std::locale loc("en_US.UTF-8"); // or "" for system default
std::wofstream file;
file.imbue(loc); // make the UTF-8 locale for the stream as default
file.open("file.txt");   
wchar_t cp = 0x4E3B;
file << cp;

但是,如果您需要 Windows,那就完全不同了:

您需要将代码点转换为 UTF-8。很多方法。如果大于0xFFFF,则将其转换为UTF-16,然后搜索如何使用WideCharToMultiByte,然后保存到文件。

关于c++ - 十六进制转unicode字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772959/

相关文章:

c++ - header 中的类模板

c++ - OpenGL实际上是如何读取索引的?

PHP 5.3 找不到 normalizer_normalize()

python - Python 是否禁止使用两个相似的 Unicode 标识符?

c - 如何在C中将字符组合在一起作为字符串

c++ - 一元 '*' 的无效类型参数(有 'bool' )

c++ - 尝试确定转换后的范围是否为空

javascript - 为什么 Javascript RegExp 测试为该字符的 unicode 值提供 "false"?

string - Bash- 打乱字符串中包含的字符

java - 替换字符串中特定索引处的字符?