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

Aam*_*mir 4 c++ unicode utf-8 text-files

我必须读取一个带有UTF-8编码的Unicode文本文件,并且必须将此数据写入另一个文本文件.该文件以行标签分隔数据.

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

我想知道的是,逐行读取时,我会遇到一行中的NULL终止字符('\ 0'),因为它是unicode,一个字符可以跨越多个字节.

我的想法是很可能在一行中遇到一个NULL终止字符.你的意见?

CsT*_*mas 13

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

因此,您的UTF-8文件中不得有0个字符.

检查维基百科的UTF-8

  • 事实上,UTF-8是专门设计的,所以这是真的,因为它有一个编码,其中ASCII范围每个都存储在一个字节中,并且当传递给`strcpy()时以合理的方式工作.和它的朋友们. (2认同)