VC++中如何改变文件编码方式?

VC++中如何改变文件编码方式?,第1张

据我所知,VC里对于文件不管什么编码的,对于VC来说它只认识二进制数据。比较接近物理底层,呵呵,我刚从VC转向.net的时候也对.net的编码郁闷了一段时间。

你可以使用_T("")宏把字符串转成UNICODE编码,不如_T("Hello World!"),不过可不能游茄嫌再保存到char数组里了,微神手软给我们准备了一个TCHAR,其实纳配就是一个 short int型数组,UNICODE 需要2个字节来表示一个数组,现在只要把TCHAR内存块写进文件就OK了,对C++来说它还是一串二进制数据。

另外,微软极力建议使用_T("")宏,所以请不要嫌麻烦,养成好的习惯是非常重要的!

这个暂时没有一闹笑步液皮含实现的方法,首先你要先理解原理

WINDOWS内部是使用宽字节的,用的是unicode

所以你首先要把 ANSI=>Unicode,用函数MultiByteToWideChar实现

然后再把Unicode=>UTF8,用函数WideCharToMultiByte实现

原理就这样,至于具体怎么用,再百度一把吧,网上很握罩多例子,勤奋的双手创造财富

输出正确的UTF-8纯文本文辩侍首件分为两个谈睁步骤:

写BOM文件头。UTF-8编码是EF BB BF

将文本通携数过MultibyteToWideChar转换为UTF8格式,写入文件。

需要注意的有两条,一个是,不能以文本方式打开(因为BOM是不可打印的),一个是编码转换要确认初始编码是什么。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12323388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存