首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用c++将utf-8字符写入文件

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

Stack Overflow用户
提问于 2013-12-06 06:27:49
回答 1查看 7.5K关注 0票数 0

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

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

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

代码语言:javascript
复制
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值的等价字符。帮助我在二进制模式下使用utf-8编写文件的c++值。

EN

Stack Overflow用户

回答已采纳

发布于 2013-12-06 06:32:20

short数组将解决您的目的时,为什么要使用char数组?

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

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

代码语言:javascript
复制
//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。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20417466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档