文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>.Net 字符串编码和转换

.Net 字符串编码和转换

时间:2010-08-16  来源:沧海一声笑

一、先普及一下基本知识

编码指不同国家的语言在计算机中的一种存储和解释规范
ANSI与ASCII

       最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美国信息交换标准码),它使用7 bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息
nANSI字符集:ASCII字符集,以及由此派生并兼容的字符集,如:GB2312,正式的名称为MBCS(Multi-Byte Chactacter System,多字节字符系统),通常也称为ANSI字符集。

UNICODE与UTF8,UTF16

         由于每种语言都制定了自己的字符集,导致最后存在的各种字符集实在太多,在国际交流中要经常转换字符集非常不便。因此,产生了Unicode字符集,它固定使用16 bits(两个字节)来表示一个字符,共可以表示65536个字符
        标准的Unicode称为UTF-16(UTF:UCS Transformation Format )。后来为了双字节的Unicode能够在现存的处理单字节的系统上正确传输,出现了UTF-8,使用类似MBCS的方式对Unicode进行编码。(Unicode字符集有多种编码形式)
例如“连通”两个字的Unicode标准编码UTF-16 (big endian)为:DE 8F 1A 90
                 而其UTF-8编码为:E8 BF 9E E9 80 9A

        当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字符集的哪种编码保存的。软件一般采用三种方式来决定文本的字符集和编码:
检测文件头标识,提示用户选择,根据一定的规则猜测
最标准的途径是检测文本最开头的几个字节,开头字节 Charset/encoding,

二、.Net 中字符串编码的转换

例如:转换成UTF8

.NET 中默认字符串是Unicode

  byte[] sourcebytes = System.Text.Encoding.Default.GetBytes(sUnicode);

  byte[] targetbytes=System.Text.Encoding.Convert(Encoding.Unicode, Encoding.UTF8, tmpbytes);
  string UTF8string = System.Text.Encoding.UTF8.GetString(targetbytes);

文本文件的编码问题

FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)

StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default) //using an encoding for the operating system's current ANSI code page

 

Write 文件

using(StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.Default))

{

      sw.Write(buffer);
      sw.Close();

}
用操作系统当前的ANSI code Page 保存文件。

 

 

 

 

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载