c++ - 通过非 unicode 代码读取 UTF-8 Unicode 文件

标签 c++ unicode utf-8 text-files

我必须读取一个采用 UTF-8 编码的 Unicode 文本文件,并将此数据写入另一个文本文件。该文件包含以制表符分隔的行数据。

我的阅读代码是不支持 unicode 的 C++ 代码。我正在做的是在 string/char* 中逐行读取文件并将该字符串按原样放入目标文件。我无法更改代码,因此不欢迎提出代码更改建议。

我想知道的是,在逐行阅读时,我能否在一行中遇到 NULL 终止字符 ('\0'),因为它是 unicode 并且一个字符可以跨越多个字节。

我的想法是,很有可能在一行中遇到 NULL 终止字符。你的想法?

最佳答案

UTF-8 对所有 ASCII 字符使用 1 个字节,这些字符与标准 ASCII 编码具有相同的代码值,其他字符最多使用 4 个字节。每个字节的高位保留为控制位。对于使用超过 1 个字节的代码点,设置控制位。

因此你的 UTF-8 文件中不能有 0 个字符。

检查 Wikipedia for UTF-8

关于c++ - 通过非 unicode 代码读取 UTF-8 Unicode 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1204697/

相关文章:

c++ - 如果不满足 "if criteria",默认返回什么?重载下标运算符

python - 如何在Python中进行安全的二进制比较?

php - 如何对 UTF-8 字符串数组进行排序?

ruby - 如何在 Ruby 正则表达式中匹配韩文字符?

php - UTF-8贯穿始终

python - Unicode解码错误: 'utf8' codec can't decode byte 0xc3 in position 34: unexpected end of data

c++ - 每次使用std::cout都可以执行一个函数吗?

c++ - 同时遍历两个 std::lists

C++ 字符串追加问题

java - PDFBox hasGlyph() 为不支持的 unicode 控制字符返回 true