c++ - 从 UTF-8 字节数组创建字符串?
问题描述
考虑表情符号。它是 U+1F619(十进制 128537)。我相信它的 UTF-8 字节数组是 240、159、152、151。
- 给定 UTF-8 字节数组,我该如何显示它?我是否
std::string
从字节数组创建一个?是否有 3rd 方库可以提供帮助? - 给定一个不同的表情符号,我怎样才能得到它的 UTF-8 字节数组?
目标平台:Windows。编译器:Visual C++ 2019。只是粘贴到 Windows CMD 提示符下不起作用。我尝试chcp 65001
将 Lucida 作为字体,但没有运气。
如有必要,我可以在 macOS 或 Linux 上执行此操作,但我更喜欢 Windows。
为了澄清......给定一个 400 字节的列表,假设 UTF-8,我如何显示相应的代码点?
解决方案
C++ 有一个简单的解决方案。
#include <iostream>
#include <string>
int main(void) {
std::string s = u8""; /* use std::u8string in c++20*/
std::cout << s << std::endl;
return 0;
}
这将允许您存储和打印任何 UTF-8 字符串。
请注意,Windows 命令提示符对这种东西很奇怪。最好使用 MSYS2 等替代方案。
推荐阅读
- python - Scipy 优化 TNC 方法,规模有什么作用?“无法进步”的解决方案?
- java - 如何在 Eclipse 中打开 BIM 查看器?
- amazon-web-services - 在 AWS 中将 SNS 订阅到 SQS?
- java - 如何在使用 Netbeans GUI 编辑器构建的项目的 JPanel 中添加 Jbutton?
- python - For循环在python中以某种方式提前退出
- java - 在java中创建字符串的最佳方法是什么
- c# - 剪切堆栈跟踪字符串的最后一个字符
- angular - 具有自定义元素主机的 Angular 和 Bootstrap 输入组
- android - firebase jobdispatcher 没有安排我的工作
- websocket - Grizzly 2.4.4 关闭的 WebSockets 内存泄漏