用WriteFile写文件时乱码

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 12:39   42   0

今天写一个小程序,向文件中写中文,但是始终是乱码,不知道为什么,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 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP