如何在 C++ 中获取非英文字符

Posted

技术标签:

【中文标题】如何在 C++ 中获取非英文字符【英文标题】:How to get a non-English Character in C++ 【发布时间】:2020-02-19 01:41:49 【问题描述】:

我有一个像“tỏa”这样的字符串,如何将字符“ỏ”作为字符串? 当我打印字符串 [1] 时,它显示了�不是“ỏ”。

提前致谢。我希望你能帮助我解决这个问题。

【问题讨论】:

您需要花费 很多 时间了解编码和字符集、它们是什么以及它们是如何工作的;然后研究你的编译器和操作系统的文档。这是一个令人惊讶的复杂主题。祝你好运。 输出设备的编码需要与您正在打印的编码相匹配——这可能是您编写代码时文本编辑器设置的编码。 使用像 ICU 这样的 Unicode 库来获取下一个代码点。即使您学习了如何解码 UTF-8,Unicode 也太复杂了,无法自己处理。 "ỏ" 可以是预合成的 (U+1ECF) 或分解的 (U+006F U+0309)。并且有许多字符由多个代码点组成,例如标志(????????,会表现得像一个字符)或表情符号??????‍???????????? ?‍????‍????‍???? 这是您的第三个问题。发给your first question的答案不清楚吗? 您必须知道您的应用程序和外围设备使用了哪个代码页,并且要么使用相同的代码页,要么进行转换。此外,您需要确保您使用的字体包含您要显示的字符。像 Notepad++ 这样的编辑器对于检查文件的编码和进行转换以进行测试非常有用。 【参考方案1】:

看看:http://www.cplusplus.com/forum/general/77234/ 它很好地解释了如何做到这一点。

【讨论】:

以上是关于如何在 C++ 中获取非英文字符的主要内容,如果未能解决你的问题,请参考以下文章

从 C++ 中的 std::string 获取字节

如何在 C++ 非托管代码 Json 中反序列化一个字节 [] 的 json 字符串?

如何从非托管 C++ 代码获取结构化列表值到 C#?

如何在 C++ 中获取 linux 命令输出字符串和输出状态

如何在 C++ 中打开 Nano 并从中获取字符串?

C++ 字符串 - 如何避免获取无效指针?