今天写一个小程序,向文件中写中文,但是始终是乱码,不知道为什么,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,保证不带乱码的 。