gpt4 book ai didi

c++ - 如何使用 C++ 将 utf-8 字符写入文件

转载 作者:行者123 更新时间:2023-11-28 00:37:15 25 4
gpt4 key购买 nike

如何使用c++将utf-8字符写入文件?

例如,utf-8 值=0xc389如果我以二进制模式将其写入文件,我必须看到字符。

到目前为止,我已经尝试了以下方法

unsigned short array[4]={0xc3,0x89,0xc3,0x8a};
std::ofstream file;
file.open("1.txt", std::ios_base::binary);
file.write(reinterpret_cast<char const*>(array),sizeof(array));

但它将0xc3作为单个字符,并打印出其等效字符0xc3 unicode值。帮助我如何在二进制模式下使用 c++utf-8 值写入文件

最佳答案

char 数组可以解决您的问题时,您为什么要使用 short 数组?

首先,在 UTF-8 中,您是逐字节写入的。如果您的序列是有效的 UTF-8 字节序列,则逐字节写入它们。

如果是 unicode 字符,首先将您的字符流转换为 UTF-8 字符,因为超过 0x7f 的字符将被区别对待。

//I assume this a valid UTF-8 sequence.
unsigned char array[4]={0xc3,0x89,0xc3,0x8a};
std::ofstream file;
file.open("1.txt", std::ios_base::binary);
file.write(reinterpret_cast<char const*>(array),sizeof(array));

如果数组不是 UTF-8 序列而是一些字符,您可以在 linux 上使用 iconv 将其转换为 UTF-8。

关于c++ - 如何使用 C++ 将 utf-8 字符写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20417466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com