几段代码让你彻底搞懂编码出现乱码问题(File类的几个读写文本问题)
2017-11-09 02:23
253 查看
废话不多说;我先上图
我的代码是用File类读取文本里面的内容,开始也是我写入的。
其实关于编码乱码问题,很多人都说你打开文本另存为UTF-8就搞定。
那么如果我来说下里面的原理;
其实我们默认不写编码格式就默认为ASCII.
因此当我们打开去看的时候用的编码格式默认其实是UTF-8
你写入和读取的编码不同,肯定不行。
看代码,
“`
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
namespace IO目录管理
{
class Program
{
private string _Path1 = @”E:\TestDir\Test\1.txt”;
}
上执行结果
很明显我们是正确读取到了中文,
现在我把写入文本的时候编码改了
很明显我写入的时候是ASCII编码,我们就看不到正确的中文字符
我的代码是用File类读取文本里面的内容,开始也是我写入的。
其实关于编码乱码问题,很多人都说你打开文本另存为UTF-8就搞定。
那么如果我来说下里面的原理;
其实我们默认不写编码格式就默认为ASCII.
因此当我们打开去看的时候用的编码格式默认其实是UTF-8
你写入和读取的编码不同,肯定不行。
看代码,
“`
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
namespace IO目录管理
{
class Program
{
private string _Path1 = @”E:\TestDir\Test\1.txt”;
public void Test() { string strArray = File.ReadAllText(_Path1); //Console.WriteLine(strArray); File.WriteAllText(_Path1, "12121222222222222222211111111刘焱 \r 12 ",Encoding.UTF7); String[] strArray1 = File.ReadAllLines(_Path1, Encoding.UTF7); foreach (string item in strArray1) { Console.WriteLine(item); } } static void Main(string[] args) { Program p = new Program(); p.Test(); } }
}
上执行结果
很明显我们是正确读取到了中文,
现在我把写入文本的时候编码改了
很明显我写入的时候是ASCII编码,我们就看不到正确的中文字符
相关文章推荐
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- 【问题一】notepad++编辑器写Java代码,无法编译出现错误:编码GBK的不可映射字符
- 更正ftp上传采用utf-8编码方式写入txt文件用IE打开出现乱码的问题
- Android 项目编码修改,在导入一个项目后,出现乱码问题
- 不同编码页面之间用form传值出现乱码问题解决方案 utf-8 到 gb2312
- Android Studio中编码问题(出现中文乱码)
- utf8编码在win32及ubuntu下中文出现乱码问题一例
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- 批量修改文件的编码格式-问题来自于用Source Insight打开项目时中文部分出现乱码
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- FileReader读取中文txt文件编码丢失问题(乱码)
- stm32笔记01——keil问题01.代码复制到Word出现乱码
- java中文件的编码(在建立text文本时,如果文件中只写联通或是联,再次打开的时候就会出现乱码,下面就是原理)
- 彻底解决 纯文本 右键=》打开方式 出现两个记事本的问题
- 读取文本,出现乱码问题解决
- 【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- 彻底搞懂乱码——字符,字节和编码
- Java:InputStream读取文本文件内容出现乱码问题的解决方法
- utf-8编码的数据文件用excel打开出现的乱码问题
- Spring MVC 自带的字符编码过滤器以及Tomcat字符编码设置,彻底解决中文参数乱码问题