.NET编码与解码

          首先需要知道编码的基础知识:

          计算机都是用二进制保存数据的,因此对于我们生活中所使用的字符在计算机中都需要有一个二进制数据来表示。将生活中所使用的字符转换成计算机能够明白的二进制数据,叫做编码,反之则叫做解码。编码的规则有我们熟知的这些:ASCII,Unicode,Utf-8等等。

          Unicode它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。长度为4个字节,用十六进制表示就是 00 00 00 00。由Unicode编码衍生而来的有Utf-8(变长编码),Utf-16,Utf-32这三种编码方式。

          此外还有一个特殊的编码:就是为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。中文操作系统默认就是使用这种编码方式的。

          在实际开发中,经常需要将一些字符串写入到文本文件中,或者从文本文件中读入字符串,这时就要对字符串进行编码。

       .NET中提供给我们的编码类是Encoding。其中有两个重要的方法,就是GetBytes和GetString,其作用就是将字符串编码和解码。通过观察可以发现Encoding的构造函数是protected也就意味着我们并不能在外部构造实列。但是其还有几个属性:Default,Unicode,ASCII,Unicode,UTF32,UTF8这些属性,这些属性返回类型的是Encoding,顾名思义其返回的就是以某种相应编码规则进行编码的实列。通过这些属性我们来进行相应的编码和解码。

       还要注意一点,如果某字符串以某种方式进行编码,则解码的时候需要对应的编码方式进行解码。

posted @ 2010-12-31 11:01  雁北飞  阅读(920)  评论(0编辑  收藏  举报