1、默认编码方式转换:
(1)string(char[])转换为byte[]
byte[] byteArr = System.Text.Encoding.Default.GetBytes(char[]); byte[] byteArr = System.Text.Encoding.Default.GetBytes(string); byte[] byteArr = System.Text.Encoding.Default.GetBytes(char[], startindex, count); int count = System.Text.Encoding.Default.GetBytes(char * , count, byte*, startindex); int count = System.Text.Encoding.Default.GetBytes(char[] , startindex, count, byte[], startindex); int count = System.Text.Encoding.Default.GetBytes(s , startindex, count, byte[], startindex);
(2)byte[]转换为string(char[])
string str = System.Text.Encoding.Default.GetString ( byteArray ); string str = System.Text.Encoding.Default.GetString ( byteArray, startindex, count );GetString方法和GetChar方法类似,后者将字节数组转换为对应的字符数组。
2、其他编码方式转换
将上述Default更换为ASCII、Unicode、UTF8、UTF7、UTF32等编码方式,然后调用对应方法就可以转换。
string str = "01"; byte[] byteArr = System.Text.Encoding.ASCI.GetBytes(str);上述代码得到byteArr = {0x30, 0x31},这就是0和1的ASCI编码值。byte[] byteArr = new byte[]{0x4e, 0x01}; string a = System.Text.Encoding.BigEndianUnicode.GetString(byteArr);上述代码将unicode编码的第二个汉字“丁”解码赋值给变量a,“丁”的unicode码为\u4e01。
3、Byte[]中的十六进制转换为十六进制字符串
public static string ToHexString ( byte[] bytes ) { string hexString = string.Empty; if ( bytes != null ) { StringBuilder strB = new StringBuilder (); for ( int i = 0; i