码迷,mamicode.com
首页 > Windows程序 > 详细

C# Encoding

时间:2017-07-12 01:06:45      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:console   查看   html   page   img   应用程序   语言   ref   get   

之前做公司项目的时候,对于C#编码这块总是一知半解,所以打算通过这篇笔记对C#编码(Encoding)进行彻底的扫盲,关于编码和字符集的基础知识,请参考字符集和字符编码(Charset & Encoding),看完这篇文章之后,来看本文会更加的轻松。

1、Encoding

(1)、如何生成一个Encoding即一种编码

Encoding位于System.Text命名空间下,是一个抽象类,它的派生类如下图:

技术分享

要实例化一个Encoding一共有以下两种方式:

a、通过实例化它的派生类,然后通过里式转换实例化一个Encoding,代码如下:

Encoding e=new UTF8Encoding();

b、通过Encoding的静态属性ASCII,Unicode,UTF32,UTF7,UTF8,Default来生成,代码如下:

Encoding e = Encoding.UTF8;

其实b中的静态属性无非是new了一个a中的派生类,有图为证

技术分享

注:上面通过静态属性生成的Encoding实例,符合单例模式,但是并不适用在多线程环境下,所以当你的Encoding需要全局唯一时,请使用静态属性的方式,而不是通过new的方式。

 

(2)Encoding.Default

注意(1)中b,Encoding的静态属性中有一个Default,它没有对应的派生类,但是它返回的也是一个Encoding对象,至于返回那种语言的Encoding,取决于取决于你电脑里-->控制面板->区域和语言 里面的设置,也就是ANSI,比如我的电脑设置的是中文,那么对应的就是gb2312,但是如果你的代码不止在一个国家使用,那么就不要使用Encoding.Default,这样会造成乱码,最好使用Encoding.UTF8.

 

2、如何调用常用编码之外的编码,通过GetEncoding()和GetEncodings()

上面介绍了ASCII,Unicode,UTF32,UTF7,UTF8常规的5中编码方式,但是有一些编码如gb2312就没有对应的派生类,那么获取这类语言对应的Encoding只能通过GetEncoding()和GetEncodings()方法来获取

(1)、GetEncodings()

通过GetEncodings()可以获取所有的编码,代码如下:

EncodingInfo[] infos = Encoding.GetEncodings();

技术分享

目前为止一共有140种,通过GetEncodings()方法你可以方便的查看所有语言的编码信息,个人开发了一个简单窗体应用程序,来查询不同的编码信息。点击下载

(2)、GetEncoding()

通过这个方法可以获取指定语言的Encoding,当然你必须给出一个codePage或者是name,代码如下:

Encoding ei=Encoding.GetEncoding(936);
Console.WriteLine(ei.WebName);

技术分享

 

 

 

 

C# Encoding

标签:console   查看   html   page   img   应用程序   语言   ref   get   

原文地址:http://www.cnblogs.com/GreenLeaves/p/7152781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!