C# string类型和byte[]类型相互转换
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;???????
?}
轉載于:https://www.cnblogs.com/Maxq/p/5953682.html
總結
以上是生活随笔為你收集整理的C# string类型和byte[]类型相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python练习题 001:4个数字求不
- 下一篇: CentOS7搭建hadoop2.6.4