用WriteFile写文件时乱码

今天写一个小程序,向文件中写中文,但是始终是乱码,不知道为什么,google了一下,说是由于某些编辑器会往utf8文件中添加utf8标记而导致的结果。原文如下:

 

〓〓〓〓〓〓〓〓 

URL:http://xuliduo.javaeye.com/blog/199299

〓〓〓〓〓〓〓〓 

众所周知,在跨程序的工程中,统一编码是至关重要的,而目前最普遍的则是统一采用“utf8”编码方案。 
但是在采用utf8方案的时候,请注意编辑器的自作聪明。 
比如editplus。 
原因就在于某些编辑器会往utf8文件中添加utf8标记(editplus称其为签名),它会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),它的表示的是 Unicode 标记(BOM)。 
因此要解决这个问题的关键就是把这个标记选项去掉。 

首先用editplus打开这个文件,从Doucument菜单中选择Permanet Settings,有三个分类,分别是General,File, Tools.点击File,右边会有一项是 UTF-8 signature: 选择 always remove signature. 点击OK 

中文版本的 editplus 下操作的菜单结构如下: 文档->参数设置->文件->UTF-8签名->总是移除签名->确定 

这样就设置了UTF-8格式不需要在文件前面加标记。 
最后把文件另存为utf-8格式就好了.

〓〓〓〓〓〓〓〓 

 

〓〓〓〓〓〓〓〓

方法一:字符转换。

详见:URL:http://www.cppblog.com/SpringSnow/archive/2009/02/09/73334.aspx

 

〓〓〓〓〓〓〓〓

方法二:

实际上,如果不是非得用ASCII, 其实。你不用转换也可以的,如果写宽字符只要在开头的时候写两个字节0xFF,0xFE不就成了Unicode,保证不带乱码的 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值