【发布时间】:2021-12-12 07:08:00
【问题描述】:
目前使用 WSL2 Ubuntu、G++ 在 C++20 中编码。
如果我有一个由 utf-8 unicode 字符组成的 .txt 文件:
▄ ▄ ▄▄▄ ▄ ▄ ▄▄▄▄ ▄▄ ▄ ▄ ▄▄▄
-
如何获取此 unicode 字符串的长度(unicode 字符数)?
-
如何读取文件内容并打印出 unicode 字符串?
【问题讨论】:
-
Unicode 字符实际上并没有说明什么。您必须首先知道或确定文件编码。严格来说 Utf-8 是 unicode,UTF-16LE 是 Unicode,UTF-32 是 Unicode - 所以首先需要回答的真正问题是它是哪个 unicode。因为很可能您必须自己进行转换
-
如何找出正在使用的编码?
-
有时文件的前几个字节会告诉你。其他时候,您必须做一些业余加密并尝试所有这些,直到找到有意义的解码消息。
-
还有ICU library 对文件产生了一些不错的效果。我自己在使用那个库,因为我懒得写一些复杂的东西
-
我将单个字符的二进制与unicode表进行了比较,看起来它使用的是UTF-8编码。