在这里并不介绍什么是编码,或者编码有哪些种类,这里只是介绍在开发过程中遇到的关于使用编码的体会。
中文汉字编码名称为gb2312或者936。汉字的占两个字节,英文字符占一个字节。
一个字节的值在0-255之间
ANSI:OS的编码,中文就是GB2312
unicode big endian FE FF 高位 低位
unicode FF FE 低位 高位
UTF-8:unicode 的传输格式。 它是unicode经过特殊算法计算后形成的。
EF BB BF 表示这是一个UTF-8编码。
System.Text.Encoding 中Default属性可以获取OS使用的编码。
//在.NET中获得中文编码对象。
System.Text.Encoding gb = System.Text.Encoding.GetEncoding(936);
System.Text.Encoding gb2 = System.Text.Encoding.GetEncoding("gb2312");
在从文本文件中读取的时候,要指定读取时使用的编码,防止出现乱码。(!)这点很必要。
System.IO.StreamReader sr = new StreamReader("textFile.Txt",gb);
string msg = sr.ReadToEnd();
//将字符串转换为字节序列
byte[] gbByte = gb.GetBytes("中国汉字");
gb2312编码中的中文汉字占两个字节,首字节的编码值>=160。
应用实例一:
将字符串 "中国,你好!Hello,China!" 中的中文"中国,你好!"提取出来。
1.将字符串转换为字节序列。
2.判断值是否大于等于160,如果真则取出与之相邻的下一个字节。
总结:写的很乱。