string和byte[]的轉換
反過來,byte[]轉成string:
string str = System.Text.Encoding.Default.GetString ( byteArray );
其它編碼方式的,如System.Text.UTF8Encoding,System.Text.UnicodeEncoding class等;例如:
string型別轉成ASCII byte[]:("01" 轉成 byte[] = new byte[]{ 0x30, 0x31})
byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str );ASCII byte[] 轉成string:(byte[] = new byte[]{ 0x30, 0x31} 轉成 "01")
有時候還有這樣一些需求:
byte[] 轉成原16進位制格式的string,例如0xae00cf, 轉換成 "ae00cf";new byte[]{ 0x30, 0x31}轉成"3031":
public static string 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[],例如, "ae00cf"轉換成0xae00cf,長度縮減一半;"3031" 轉成new byte[]{ 0x30, 0x31}:
public static byte[] GetBytes(string hexString, out int discarded)
{
discarded = 0;
string newString = "";
char c;
// remove all none A-F, 0-9, characters
for (int i = 0; i < hexString.Length; i++)
{
c = hexString[i];
if (IsHexDigit(c))
newString += c;
else
discarded++;
}
// if odd number of characters, discard last character
if (newString.Length % 2 != 0)
{
discarded++;
newString = newString.Substring(0, newString.Length - 1);
}
int byteLength = newString.Length / 2;
byte[] bytes = new byte[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;
}
相關推薦
Java String 和 byte[]中間的轉換
轉自 http://blog.csdn.net/llwan/article/details/7567906 做JAVA經常會碰到中文亂碼問題,還有各種編碼的問題,特別是String類的內容需要重新編碼的問題。要解決這些問題,必須瞭解清楚JAVA對於字串是怎麼處理的。
Java中String和byte[]間的轉換淺析
Java語言中字串型別和位元組陣列型別相互之間的轉換經常發生,網上的分析及程式碼也比較多,本文將分析總結常規的byte[]和String間的轉換以及十六進位制String和byte[]間相互轉換的原理及實現。 1. String轉byte[] 首先我們來分析一下常規的Strin
java實現String和byte[]的轉換
String s = "easonjim";//String變數 byte b[] = s.getBytes();//String轉換為byte[] String t = new String(b);//bytep[]轉換為String,支援傳遞編碼 1、
string和byte[]的轉換
string型別轉成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); 反過來,byte[]轉成string: string str = System.Text.Encodin
Char, String 和 Byte 等型別間的轉換和編碼
這篇文章的標題看似簡單,那就先從簡單的說起。眾所周知: 1、char 是字元型別; 2、string 是字串型別; 兩者都是及其常用資料型別。雖然一字之差,但是有本質區別: 1、char 在C++中是基礎型別,在C#中是值型別(Value Ty
golang string和[]byte的對比
side runt solid git sql raw expec 內存 indent golang string和[]byte的對比為啥string和[]byte類型轉換需要一定的代價?為啥內置函數copy會有一種特殊情況copy(dst []byte, src stri
Golang黑科技之——string與[]byte轉換
我們知道,相對於C語言,golang是型別安全的語言。但是安全的代價就是效能的妥協。 下面我們通過Golang中的“黑科技”來一窺Golang不想讓我們看到的“祕密”——string的底層資料。 通過reflect包,我們可以知道,在Golang底層,string和slice其實都是st
String和Integer轉換的大坑
今天碰到一個大坑,相信很多人也都碰到過,那就是String和Integer的相互轉換 m=Integer.parseInt(num) 到最後判斷的時候我用m=l.getM(); 一直得不到我想要的結果 後來在網上查了很多資料發現,Integer型別的取值範圍在1
java String和Date轉換
/** SimpleDateFormat函式語法: G 年代標誌符 y 年 M 月 d 日 h 時 在上午或下午 (1~12) H 時 在一
【資料處理】關於string與byte轉換之間 資料丟失的問題
最近在專案中遇到一個問題: 程式中用到了MD5加密和IDEA加密,通過這些演算法得出的結果均是位元組碼,但是我程式中使用一個通訊介面,其接受的引數型別為String。所以在傳送時,需要轉換為String。 對於java來說,byte只能表示有
go hex string與[]byte轉換
hex string to []byte import "hex" // 省略部分程式碼.... hexStr := "fee9ecaadafeee72d2eb66a0bd344cdd" data, err := hex.DecodeString(hex
C# Path操作路徑檔案、File處理檔案、讀寫檔案:byte[];string[];string; string與byte[]轉換,File.AppendAllText()
將字串以怎樣的形式儲存在二進位制------編碼 File 和Path 都在名稱空間 using System.IO; 1、 專門操作路徑 Path string str = @"E:\language\C#\C#learn\first.wav";
String和Date轉換
異常 pre simple exce parse EDA nts tst cep 1.Date轉String Date date = new Date(); SimpleDateFormat sdf = new SimpleDateF
C# 中字符串string和字節數組byte[]的轉換
arr nco bytes bytearray 數組 byte[] sys efault ring string轉byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte
C#: 字串string和位元組陣列byte[]的轉換
string轉byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]轉string: string str = System.Text.Encoding.Default.GetStri
【C# 4】文字轉換。串列埠通訊中字串string和位元組陣列byte[]、ASCII的轉換
string轉byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]轉string:string str = System.Text.Encoding.Default.GetString ( byteArra
C# string型別和byte[]型別相互轉換
string型別轉成byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]轉成string:string str = System.Text.Encoding.Defau
C# byte[]型別和String型別相互轉換
String型別轉成byte[]: byte[] byteArray = System.Text.Encoding.UTF8.GetBytes ( strvalue ); byte[]轉成String: String str = System.Text.Encoding.U
轉:Java中String與byte[]的轉換
輸出字符串 單個字符 linu 編輯 繁體 中國人 對象 本質 計算機基礎知識 String s = "fs123fdsa";//String變量 byte b[] = s.getBytes();//String轉換為byte[] String t = new Stri
圖片和base64編碼字符串 互相轉換,圖片和byte數組互相轉換
16進制 cnblogs exc 十六進制 tostring ati color int inpu 圖片和base64編碼字符串 互相轉換 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; imp