欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#字節(jié)數(shù)組(byte[])和字符串相互轉(zhuǎn)換方式

 更新時(shí)間:2023年02月28日 14:59:50   作者:IT技術(shù)猿猴  
這篇文章主要介紹了C#字節(jié)數(shù)組(byte[])和字符串相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C#字節(jié)數(shù)組(byte[])和字符串相互轉(zhuǎn)換

通過C#中的system.text.encoding獲取字符串的編碼可以有ASCII,DEFAULT,utf-8以及其他一些方式

對(duì)于英文而言這幾種所獲取的編碼是沒有太大區(qū)別的,而中文則大有不同,其中DEFAULT所采取的是GB2312

可以通過一下方式進(jìn)行確認(rèn),程序運(yùn)行后會(huì)發(fā)現(xiàn)bufOfGB和buf是相同的

? ? ? ? ? ? ? ? string str = "hello,我的祖國";
? ? ? ? ? ? ? ? byte[] bufOfGB = System.Text.Encoding.GetEncoding("gb2312").GetBytes(str);
? ? ? ? ? ? ? ? Array.ForEach(bufOfGB,m=>Console.WriteLine(m));
? ? ? ? ? ? ? ? Console.WriteLine(System.Text.Encoding.Default);
? ? ? ? ? ? ? ? byte[] buf = System.Text.Encoding.Default.GetBytes(str);
? ? ? ? ? ? ? ? Array.ForEach(buf,m=>Console.WriteLine(m));
? ? ? ? ? ? ? ? Console.WriteLine("-------------");
? ? ? ? ? ? ? ? byte[] bufOfASCII = System.Text.Encoding.ASCII.GetBytes(str);
? ? ? ? ? ? ? ? Array.ForEach(bufOfASCII,m=>Console.WriteLine(m));
? ? ? ? ? ? ? ? Console.WriteLine("-------------");
? ? ? ? ? ? ? ? byte[] bufOfUTF = System.Text.Encoding.UTF8.GetBytes(str);
? ? ? ? ? ? ? ? Array.ForEach(bufOfUTF,m=>Console.WriteLine(m));
? ? ? ? ? ? ? ? Console.WriteLine("-------------");
byte[] byteArray ={43,45,67,88,23,1f}
string str = System.Text.Encoding.Default.GetString(byteArray);

C#字節(jié)數(shù)組向類型的轉(zhuǎn)化

字節(jié)數(shù)組與圖像

? ? ? #region BytesToBmp【函數(shù)】將字節(jié)數(shù)組轉(zhuǎn)化為圖像
? ? ? ? /// <summary>
? ? ? ? /// 【函數(shù)】將字節(jié)數(shù)組轉(zhuǎn)化為圖像
? ? ? ? /// </summary>
? ? ? ? /// <param name="buffer"></param>
? ? ? ? /// <returns></returns>
? ? ? ? public static Image BytesToBmp(byte[] buffer)
? ? ? ? {
? ? ? ? ? ? MemoryStream ms = new MemoryStream(buffer);
? ? ? ? ? ? ms.Position = 0;
? ? ? ? ? ? Image img = Image.FromStream(ms);
? ? ? ? ? ? ms.Close();
? ? ? ? ? ? return img;
? ? ? ? }
? ? ? ? #endregion
?
? ? ? ? #region BmpToBytes【函數(shù)】將圖像轉(zhuǎn)化為字節(jié)數(shù)組
? ? ? ? /// <summary>
? ? ? ? /// 【函數(shù)】將圖像轉(zhuǎn)化為字節(jié)數(shù)組
? ? ? ? /// </summary>
? ? ? ? /// <param name="Bit"></param>
? ? ? ? /// <returns></returns>
? ? ? ? public static byte[] BmpToBytes(Bitmap Bit)
? ? ? ? {
? ? ? ? ? ? byte[] back = null;
? ? ? ? ? ? MemoryStream ms = new MemoryStream();
? ? ? ? ? ? Bit.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
? ? ? ? ? ? back = ms.GetBuffer();
? ? ? ? ? ? return back;
? ? ? ? }
? ? ? ? #endregion

字節(jié)數(shù)組與字符串

? ? ? ? #region StringToBytes【函數(shù)】將字符串轉(zhuǎn)化為字節(jié)組
? ? ? ? /// <summary>
? ? ? ? /// 【函數(shù)】將字符串轉(zhuǎn)化為字節(jié)組
? ? ? ? /// </summary>
? ? ? ? /// <param name="str"></param>
? ? ? ? /// <returns></returns>
? ? ? ? public static byte[] StringToBytes(string str)
? ? ? ? {
? ? ? ? ? ? byte[] data = System.Text.Encoding.Default.GetBytes(str);
? ? ? ? }
? ? ? ? #endregion
?
? ? ? ? #region BytesToString【函數(shù)】將字節(jié)數(shù)組轉(zhuǎn)化為字符串
? ? ? ? /// <summary>
? ? ? ? /// 【函數(shù)】將字節(jié)數(shù)組轉(zhuǎn)化為字符串
? ? ? ? /// </summary>
? ? ? ? /// <param name="data"></param>
? ? ? ? /// <returns></returns>
? ? ? ? public static string BytesToString(byte[] data)
? ? ? ? {
? ? ? ? ? ? string str = System.Text.Encoding.Default.GetString(data);
? ? ? ? ? ? return str;
? ? ? ? }
? ? ? ? #endregion

字節(jié)數(shù)組與整數(shù)

? ?#region BytesToInt【函數(shù)】byte數(shù)組轉(zhuǎn)int數(shù)組 ?
? ? ? ? /// <summary> ?
? ? ? ? /// 【函數(shù)】byte數(shù)組轉(zhuǎn)int數(shù)組
? ? ? ? /// </summary> ?
? ? ? ? /// <param name="src">源byte數(shù)組</param> ?
? ? ? ? /// <param name="offset">起始位置</param> ?
? ? ? ? /// <returns></returns> ?
? ? ? ? public static int[] BytesToInt(byte[] src, int offset)
? ? ? ? {
? ? ? ? ? ? int[] values = new int[src.Length / 4];
? ? ? ? ? ? for (int i = 0; i < src.Length / 4; i++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int value = (int)((src[offset] & 0xFF)
? ? ? ? ? ? ? ? ? ? ? ? | ((src[offset + 1] & 0xFF) << 8)
? ? ? ? ? ? ? ? ? ? ? ? | ((src[offset + 2] & 0xFF) << 16)
? ? ? ? ? ? ? ? ? ? ? ? | ((src[offset + 3] & 0xFF) << 24));
? ? ? ? ? ? ? ? values[i] = value;
? ? ? ? ? ? ? ? offset += 4;
? ? ? ? ? ? }
? ? ? ? ? ? return values;
? ? ? ? }
? ? ? ? #endregion
?
? ? ? ? #region IntToBytes【函數(shù)】int數(shù)組轉(zhuǎn)byte數(shù)組?
? ? ? ? /// <summary> ?
? ? ? ? /// 【函數(shù)】int數(shù)組轉(zhuǎn)byte數(shù)組 ?
? ? ? ? /// </summary> ?
? ? ? ? /// <param name="src">源int數(shù)組</param>?
? ? ? ? /// <param name="offset">起始位置,一般為0</param> ?
? ? ? ? /// <returns>values</returns> ?
? ? ? ? public static byte[] IntToBytes(int[] src, int offset)
? ? ? ? {
? ? ? ? ? ? byte[] values = new byte[src.Length * 4];
? ? ? ? ? ? for (int i = 0; i < src.Length; i++)
? ? ? ? ? ? {
?
? ? ? ? ? ? ? ? values[offset + 3] = (byte)((src[i] >> 24) & 0xFF);
? ? ? ? ? ? ? ? values[offset + 2] = (byte)((src[i] >> 16) & 0xFF);
? ? ? ? ? ? ? ? values[offset + 1] = (byte)((src[i] >> 8) & 0xFF);
? ? ? ? ? ? ? ? values[offset] = (byte)(src[i] & 0xFF);
? ? ? ? ? ? ? ? offset += 4;
? ? ? ? ? ? }
? ? ? ? ? ? return values;
? ? ? ? }
? ? ? ? #endregion

字節(jié)數(shù)組與Object

? ? ? ? #region ObjectToBytes【函數(shù)】將一個(gè)object對(duì)象序列化,返回一個(gè)byte[] ? ??
? ? ? ? /// <summary>?
? ? ? ? /// 【函數(shù)】將一個(gè)object對(duì)象序列化,返回一個(gè)byte[] ? ? ? ??
? ? ? ? /// </summary>?
? ? ? ? /// <param name="obj">能序列化的對(duì)象</param> ? ? ? ??
? ? ? ? /// <returns></returns>?
? ? ? ? public static byte[] ObjectToBytes(object obj)
? ? ? ? {
? ? ? ? ? ? using (MemoryStream ms = new MemoryStream())
? ? ? ? ? ? {
? ? ? ? ? ? ? ? IFormatter formatter = new BinaryFormatter();
? ? ? ? ? ? ? ? formatter.Serialize(ms, obj);
? ? ? ? ? ? ? ? return ms.GetBuffer();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? #endregion
?
? ? ? ? #region BytesToObject【函數(shù)】將一個(gè)序列化后的byte[]數(shù)組還原 ??
? ? ? ? /// <summary>?
? ? ? ? /// 【函數(shù)】將一個(gè)序列化后的byte[]數(shù)組還原 ? ? ? ??
? ? ? ? /// </summary>
? ? ? ? /// <param name="Bytes"></param> ? ? ? ??
? ? ? ? /// <returns></returns>?
? ? ? ? public static object BytesToObject(byte[] Bytes)
? ? ? ? {
? ? ? ? ? ? using (MemoryStream ms = new MemoryStream(Bytes))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? IFormatter formatter = new BinaryFormatter();
? ? ? ? ? ? ? ? return formatter.Deserialize(ms);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? #endregion

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談C# 中的委托和事件

    淺談C# 中的委托和事件

    本篇文章主要介紹C# 中的委托和事件,委托和事件在 .Net Framework中的應(yīng)用非常廣泛,有興趣的可以了解一下。
    2016-12-12
  • C#請(qǐng)求唯一性校驗(yàn)支持高并發(fā)的實(shí)現(xiàn)方法

    C#請(qǐng)求唯一性校驗(yàn)支持高并發(fā)的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于C#請(qǐng)求唯一性校驗(yàn)支持高并發(fā)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • C#?wpf使用DockPanel實(shí)現(xiàn)制作截屏框

    C#?wpf使用DockPanel實(shí)現(xiàn)制作截屏框

    做桌面客戶端的時(shí)候有時(shí)需要實(shí)現(xiàn)截屏功能,能夠在界面上框選截屏,本文就來為大家介紹一下wpf如何使用DockPanel制作截屏框吧,感興趣的可以了解下
    2023-09-09
  • 基于C#設(shè)計(jì)一個(gè)帶導(dǎo)航菜單的主界面

    基于C#設(shè)計(jì)一個(gè)帶導(dǎo)航菜單的主界面

    這篇文章主要為大家詳細(xì)介紹了如何基于C#設(shè)計(jì)一個(gè)帶導(dǎo)航菜單的主界面,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • C# 語言入門基礎(chǔ)介紹

    C# 語言入門基礎(chǔ)介紹

    這篇文章主要介紹了C# 語言入門基礎(chǔ),c#是一種新式編程語言,不僅面向?qū)ο?,還類型安全,本教程概述了 C# 8 及更高版本中該語言的主要組件。 下面一起進(jìn)入文章了解更多的詳細(xì)內(nèi)容吧
    2021-12-12
  • 訪問修飾符(C# 編程指南)

    訪問修飾符(C# 編程指南)

    所有類型和類型成員都具有可訪問性級(jí)別,用來控制是否可以在您程序集的其他代碼中或其他程序集中使用它們。您在聲明類型或成員時(shí)使用以下訪問修飾符之一來指定其可訪問性
    2011-02-02
  • c#之事件用法

    c#之事件用法

    這篇文章介紹了c#中事件的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • c#調(diào)用c++的DLL的實(shí)現(xiàn)方法

    c#調(diào)用c++的DLL的實(shí)現(xiàn)方法

    本文主要介紹了c#調(diào)用c++的DLL的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#超市收銀系統(tǒng)設(shè)計(jì)

    C#超市收銀系統(tǒng)設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C#超市收銀系統(tǒng)設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成

    Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成

    這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評(píng)論