zoukankan      html  css  js  c++  java
  • C# IO操作(三)文件编码

        在.net环境下新建一个文本文件(所谓文本文件就是直接可以用记事本打开的文件,直接保存字符串)和在系统中新建一个文本文件的编码是不一样的,.net默认采用UTF-8,而中文操作系统采用的是ANSI。如果在.net环境下直接读取由系统新建的文本文件,由于编码不一致,读取时就乱码了,下面来说一下,乱码的解决方法:

    1            //手动创建一个编码对象
    2             Encoding cod = Encoding.GetEncoding("gb2312");  //此时获取到的就是gb2312编码。
    3             Encoding codGBK = Encoding.GetEncoding("GBK");  //此时获取到的就是GBK编码。

    解决中文读取乱码的问题,就是保证写入时使用什么编码,读取该文件使用相同的编码即可。

    下面看一下,系统中所有的编码:

    1             //将所有编码写入文本文件
    2             string fileName = "encodings.txt";
    3             EncodingInfo[] eInfo = Encoding.GetEncodings();
    4             foreach (var item in eInfo)
    5             {
    6                 File.AppendAllText(fileName, string.Format("{0}--{1}--{2}
    ", item.CodePage, item.Name, item.DisplayName));
    7             }
    8             Console.WriteLine("OK");

     GB2312编码:兼容ASCII码表,英文字符用1个字节表示(字节用正数来表示),中文用2个字节表示(字节用负数来表示)。
     GBK编码:兼容GB2312编码。中文用2个字节表示(第1个字节用负数,第2个字节用紧跟其后的正数)。
     Unicode:国际码表,中英文都占2个字节。
     UTF-8:国际码表,英文占1个字节,中文占3个字节。

  • 相关阅读:
    常见的查找算法(七):哈希查找
    常见的查找算法(六):分块查找
    常见的查找算法(五):树表查找之一 ---- 二叉查找树
    让div充满整个body
    display:table的用法
    webpack-dev-server
    webpack--loader
    webpack nodejs npm关系
    js中==和===区别
    vue 的点击事件怎么获取当前点击的元素
  • 原文地址:https://www.cnblogs.com/chens2865/p/3873582.html
Copyright © 2011-2022 走看看