如何在 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++ 非托管代码 Json 中反序列化一个字节 [] 的 json 字符串?