VS读取文件或写入文件时出现中文乱码问题
2015-12-18 18:58
483 查看
最近我发现我从文本文档中读取文件处理后再存入新文本文档后,只要是有中文的都显示乱码了~~当我把中文去掉后一切又都正常了,而在我处理过程中,很确定没有对中文进行处理。使用记事本打开发现没有乱码现象,但是在VC里显示是乱码,而且原来可以运行的也不能运行了,去掉中文后一切正常。
参考网上的一些资料发现:
操作系统默认编码是大多是ANSI(具体有不同),txt记事本打开文件时默认以系统默认的缺省编码方式打开(中文为GB2312),所以在记事本中打开时显示正常。而VS打开以及新建文件使用的是UTF8编码。所以会出现乱码错误。解决办法很简单:
出现中文时,打开文件请使用:
StreamReader read = new StreamReader(filename, System.Text.Encoding("GB2312"));
或
String strContent=File.ReadAllText(filename,Encoding.GetEncoding("GB2312"));
新建文件请使用:
StreamWriter writer= new StreamWriter(filePath , false, Encoding.GetEncoding("GB2312"));
writer.Write(content);//content为要写入的内容
sw.Flush();
sw.Close();
亲测可用,问题解决! 网上找了弄了好久才解决掉。
切记:打开时要用,写入是也要用!莫忘写入时编码!!切勿使用UTF8~~没用的……
参考网上的一些资料发现:
操作系统默认编码是大多是ANSI(具体有不同),txt记事本打开文件时默认以系统默认的缺省编码方式打开(中文为GB2312),所以在记事本中打开时显示正常。而VS打开以及新建文件使用的是UTF8编码。所以会出现乱码错误。解决办法很简单:
出现中文时,打开文件请使用:
StreamReader read = new StreamReader(filename, System.Text.Encoding("GB2312"));
或
String strContent=File.ReadAllText(filename,Encoding.GetEncoding("GB2312"));
新建文件请使用:
StreamWriter writer= new StreamWriter(filePath , false, Encoding.GetEncoding("GB2312"));
writer.Write(content);//content为要写入的内容
sw.Flush();
sw.Close();
亲测可用,问题解决! 网上找了弄了好久才解决掉。
切记:打开时要用,写入是也要用!莫忘写入时编码!!切勿使用UTF8~~没用的……
相关文章推荐
- the begining of coding
- C语言结构体 别名定义
- View的滑动冲突解决-android开发艺术探索笔记
- Activiti进阶(四)——流程变量的设置和获取
- FPGA基础学习之数字时钟设计1
- 第三课的课后练习
- #置换#Burnside引理Polya定理
- 第十一章
- [No00005B] word快速插入当前时间&怎样一次性删除文档中的全部链接
- android里Toast的用法
- SELinux policy问题解决思路总结
- 嵌入式开发之xml---xml解析
- php5.5以上版本编译扩展模块方法
- Xcode官方文档使用手册
- Xcode7.2之沙盒
- 高效率去掉js数组中重复项
- 给大家推荐几本经典技术书籍
- Mini2440裸机RTC时钟驱动转化为字符串显示
- android 获取屏幕大小和屏幕截图
- IOS 代码创建UI界面