C#中字符串与字节数组的转换方式
一、编码(转成字节数组)GetBytes
1、ASII码:字符串中的每个字符用一个字节表示。
每个字符实际上只使用了7位,从00h-7Fh。只能表达128个字符。不能代表汉字,
1
2
|
byte [] b = Encoding.ASCII.GetBytes( "yourstring" ); Console.Write( string .Join( "-" , b.Select(p => p.ToString()))); |
// 得到:121-111-117-114-115-116-114-105-110-103
2、Unicode码:字符串中的每个字符用两个字节表示。
1
|
byte [] b = Encoding.Unicode.GetBytes( "哈啊a1" ); |
// 得到:200-84-74-85-97-0-49-0
3、简体中文:字符串中的每个中文字符用两个字节表示,其他字符用一个字节表示。
1
2
|
byte [] b = Encoding.GetEncoding( "gb2312" ).GetBytes( "哈啊a1" ); //繁体中文”big5” Console.Write( string .Join( "-" , b.Select(p => p.ToString()))); |
// 得到:185-254-176-161-97-49
UTF-8中,一个汉字对应三个字节,GB2312中一个汉字占用两个字节。
不论何种编码,字母数字都不编码,特殊符号编码后占用一个字节。
二、解码(转成字符串):GetString、GetChars
1
|
Encoding.XXX.GetString( byte [] data,[,index,count]); |
三、基于Base64(ASCII)编码的字符串与字节数组的转换
1、将指定的字符串(它将二进制数据编码为 Base64 数字)转换为等效的 8 位无符号整数数组。
1
|
byte [] bt=Convert.FromBase64String( "字符串" ); |
2、将 8 位无符号整数数组的值转换为其用 Base64 数字编码的等效字符串表示形式。
1
|
Convert.ToBase64String( byte [] data,[,index,count]); |
四、字节数组与字符数组转换
1、字符数组转字节数组
1
|
Encoding.XXX.GetEncoder().GetBytes( char [],0.length, byte [],0, true ) |
2、字节数组转字符数组
1
|
Encoding.XXX.GetDecoder().GetChars( byte [],0.length, char [],0) |
JAVA&NET技术QQ群号:456257217有问题的可以在群里面提问。