您好,登錄后才能下訂單哦!
這篇文章主要講解了“C# string怎么轉換為幾種不同編碼的Byte[]”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C# string怎么轉換為幾種不同編碼的Byte[]”吧!
①String類型轉換為UTF8編碼的Byte[]:
string strvalue ="00123aabbAA$%"; byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(strvalue);
②string類型轉換為ASCII編碼的Byte[]:
string strvalue ="00123aabbAA$%"; byte[] byteArray = System.Text.Encoding.ASCII.GetBytes (strvalue);
③string類型轉換為GB18030編碼的Byte[];
string strvalue ="00123aabbAA$%": byte[] byteArray = System.Text.Encoding.GetEncoding("GB18030").GetBytes (strvalue);
①UTF8編碼的Byte[]轉換為String類型:
byte[] byteArray = new byte[100]; String str = System.Text.Encoding.UTF8.GetString ( byteArray );
②ASCII編碼的Byte[]轉換為String類型:
byte[] byteArray = new byte[100]; String str = System.Text.Encoding.ASCII.GetString ( byteArray );
③GB18030編碼的Byte[]轉換為String類型:
byte[] byteArray = new byte[100]; String str = System.Text.Encoding.GetEncoding("GB18030").GetString ( byteArray );
下面對上面的類型轉換
舉例說明:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TRansfer { class Program { static void Main(string[] args) { string strvalue = "0aA$%#@!%^&*_+-=中國"; byte[] byteArray1 = System.Text.Encoding.UTF8.GetBytes(strvalue); byte[] byteArray2 = System.Text.Encoding.ASCII.GetBytes(strvalue); byte[] byteArray3 = System.Text.Encoding.GetEncoding("GB18030").GetBytes(strvalue); byte[] byteArray11 = new byte[100]; String str1 = System.Text.Encoding.UTF8.GetString(byteArray1); String str2 = System.Text.Encoding.ASCII.GetString(byteArray2); String str3 = System.Text.Encoding.GetEncoding("GB18030").GetString(byteArray3); string st1 = ""; foreach (byte b in byteArray1) { st1 += b.ToString(); } string st2 = ""; foreach (byte b in byteArray2) { st2 += b.ToString(); } string st3 = ""; foreach (byte b in byteArray3) { st3 += b.ToString(); } Console.WriteLine("{0} {1}", st1, str1); Console.WriteLine("{0} {1}", st2, str2); Console.WriteLine("{0} {1}", st3, str3); } } }
測試結果如下,對英文字符的翻譯都是一致,各種不同的編碼的差別主要體現在中文上面:
class Base64Helper { /// <summary> /// Base64加密,采用utf8編碼方式加密 /// </summary> /// <param name="source">待加密的明文</param> /// <returns>加密后的字符串</returns> public static string Base64Encode(string source) { return Base64Encode(Encoding.UTF8, source); } /// <summary> /// Base64加密 /// </summary> /// <param name="encodeType">加密采用的編碼方式</param> /// <param name="source">待加密的明文</param> /// <returns></returns> public static string Base64Encode(Encoding encodeType, string source) { string encode = string.Empty; byte[] bytes = encodeType.GetBytes(source); try { encode = Convert.ToBase64String(bytes); } catch { encode = source; } return encode; } /// <summary> /// Base64解密,采用utf8編碼方式解密 /// </summary> /// <param name="result">待解密的密文</param> /// <returns>解密后的字符串</returns> public static string Base64Decode(string result) { return Base64Decode(Encoding.UTF8, result); } /// <summary> /// Base64解密 /// </summary> /// <param name="encodeType">解密采用的編碼方式,注意和加密時采用的方式一致</param> /// <param name="result">待解密的密文</param> /// <returns>解密后的字符串</returns> public static string Base64Decode(Encoding encodeType, string result) { string decode = string.Empty; byte[] bytes = Convert.FromBase64String(result); try { decode = encodeType.GetString(bytes); } catch { decode = result; } return decode; } }
/// <summary> /// 將文件轉換為byte數組 /// </summary> /// <param name="path">文件地址</param> /// <returns>轉換后的byte數組</returns> public static byte[] File2Bytes(string path) { if (!System.IO.File.Exists(path)) { return new byte[0]; } FileInfo fi = new FileInfo(path); byte[] buff = new byte[fi.Length]; FileStream fs = fi.OpenRead(); fs.Read(buff, 0, Convert.ToInt32(fs.Length)); fs.Close(); return buff; } /// <summary> /// 將byte數組轉換為文件并保存到指定地址 /// </summary> /// <param name="buff">byte數組</param> /// <param name="savepath">保存地址</param> public static void Bytes2File(byte[] buff, string savepath) { if (System.IO.File.Exists(savepath)) { System.IO.File.Delete(savepath); } FileStream fs = new FileStream(savepath, FileMode.CreateNew); BinaryWriter bw = new BinaryWriter(fs); bw.Write(buff, 0, buff.Length); bw.Close(); fs.Close(); }
public static string MD5Encrypt(string strText) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strText)); return System.Text.Encoding.Default.GetString(result); } private static string GetMD5String(string sign) { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] encryptedBytes = md5.ComputeHash(Encoding.ASCII.GetBytes(sign)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < encryptedBytes.Length; i++) { sb.AppendFormat("{0:x2}", encryptedBytes[i]); } return sb.ToString(); }
string類型轉成byte[]:
byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );
byte[]轉成string:
string str = System.Text.Encoding.Default.GetString ( byteArray );
感謝各位的閱讀,以上就是“C# string怎么轉換為幾種不同編碼的Byte[]”的內容了,經過本文的學習后,相信大家對C# string怎么轉換為幾種不同編碼的Byte[]這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。