此后就出现了各国不够用的情况,所以陆续出现格式版本.
UTF-8:将部分字符编码成一个字节,将部分字符编码成2个字节,将部分字符编码成3个字节,将部分字符编码成4个字节.将128(0X0080)以下的编码成 1个字节(赢美),将(0X0080-0X07FF)编码成两个字节(欧洲,东亚),0X07FF以上使用3个字节编码,最后代理项对编码成4个字节.
UTF-16:将每个16位字符编码成两个字节,因为不会存在压缩处理,所以性能很好.它也称为UNIOCDE编码
UTF-32:使用四个字节来编码所有字符,看似万能,但处理性能较低.
UTF-7:已被UNICODE协会淘汰.
ASCII:将16字符编码成ascii字符,小于128的的16字符将被用单字节保存所以效率很好,超过的0X07FF的字符是不能转换的,否则字符值会丢失.
//1.获得汉字的区位码 byte[] array = new byte[2]; array = System.Text.Encoding.Default.GetBytes("啊"); int i1 = (short)(array[0] - ''/0''); int i2 = (short)(array[1] - ''/0''); //2.unicode解码方式下的汉字码 array = System.Text.Encoding.Unicode.GetBytes("啊"); i1 = (short)(array[0] - ''/0''); i2 = (short)(array[1] - ''/0''); //3.unicode反解码为汉字 string str = "4a55"; string s1 = str.Substring(0,2); string s2 = str.Substring(2,2); int t1 = Convert.ToInt32(s1,16); int t2 = Convert.ToInt32(s2,16); array[0] = (byte)t1; array[1] = (byte)t2; string s = System.Text.Encoding.Unicode.GetString(array); //4.default方式反解码为汉字 array[0] = (byte)196; array[1] = (byte)207; s = System.Text.Encoding.Default.GetString(array); //5.取字符串长度 s = "iam方枪枪"; int len = s.Length;//will output as 6 byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr.Length;//will output as 3+3*2=9 //6.字符串相加 System.Text.StringBuilder sb = new System.Text.StringBuilder(""); sb.Append("i "); sb.Append("am "); sb.Append("方枪枪"); string --> byte array byte[] data=Syste.Text.Encoding.ASCII.GetBytes(string); string --> byte byte data = Convert.ToByte(string); byte[]-->string string string = Encoding.ASCII.GetString( bytes, 0, nBytesSize );