西安软件公司讲string类型和byte[]类型相互转换
日期:2017/9/1  发布人:润宇软件  浏览量:11
 

string类型转成byte[]:
byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );

byte[]转成string:
string str = System.Text.Encoding.Default.GetString ( byteArray );

string类型转成ASCII byte[]:
("01" 转成 byte[] = new byte[]{ 0x30,0x31})
byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str );

ASCIIbyte[]转成string:
(byte[] = new byte[]{ 0x30, 0x31} 转成"01")
string str = System.Text.Encoding.ASCII.GetString ( byteArray );

byte[]转16进制格式string:
new byte[]{ 0x30, 0x31}转成"3031":
publicstaticstring ToHexString ( byte[] bytes ) // 0xae00cf => "AE00CF "
{string hexString = string.Empty;
if ( bytes != null )
{                
StringBuilder strB = new StringBuilder ();
for ( int i = 0; i < bytes.Length; i++ )
{                    
strB.Append ( bytes[i].ToString ( "X2" ) );                
}                
hexString = strB.ToString ();            
}return hexString;        
}

16进制格式string 转byte[]:
publicstaticbyte[] GetBytes(string hexString, outint discarded)
{            
discarded = 0;
string newString = "";
char c;// remove all none A-F, 0-9, charactersfor (int i=0; i<hexString.Length; i++)
{              
  c = hexString[i];if (IsHexDigit(c))                    
newString += c;
else                    
discarded++;            
}// if odd number of characters, discard last characterif (newString.Length % 2 != 0){                discarded++;                
newString = newString.Substring(0, newString.Length-1);            }
int byteLength = newString.Length / 2;byte[] bytes = newbyte[byteLength];string hex;int j = 0;for (int i=0; i<bytes.Length; i++){               
 hex = new String(new Char[] {newString[j], newString[j+1]});               
 bytes[i] = HexToByte(hex);                j = j+2;           
 }
return bytes;       
 }