C#字节数组与字符串相互转换代码案例

转载连接:http://blog.csdn.net/c_s_d_n_2009/article/details/52583274?locationNum=9&fps=1


一、字节数组转换为字符串

[html]  view plain  copy
  1. using System;  
  2.    
  3. namespace BasicApp  
  4. {  
  5.     class Program  
  6.     {  
  7.         public static void Main(string[] args)  
  8.         {  
  9.             // 字节数组  
  10.             byte[] bData = {65,66,67,68};  
  11.             // 字符串  
  12.             string str  = BytesToString(bData);  
  13.             // 输出  
  14.             Console.WriteLine("转换后的字符串为: {0}",str);   
  15.                
  16.             string str2  = BytesToString(bData,"GBK");  
  17.             // 输出  
  18.             Console.WriteLine("转换后的字符串为: {0}",str2);   
  19.             Console.ReadKey(true);  
  20.         }  
  21.            
  22.         // 字节数组转换为字符串  
  23.         public static String BytesToString(byte[] bData)  
  24.         {  
  25.            return System.Text.Encoding.GetEncoding(0).GetString(bData);  
  26.         }  
  27.            
  28.         // 字节数组转换为字符串  
  29.         public static String BytesToString(byte[] bData,string encode)  
  30.         {  
  31.            return System.Text.Encoding.GetEncoding(encode).GetString(bData);  
  32.         }  
  33.            
  34.     }  
  35. }  

字节数组转换为字符串的两种方法:System.Text.Encoding.GetEncoding(0).GetString(bytes)和System.Text.Encoding.GetEncoding("GBK").GetString(bytes)

转载:  http://www.what21.com/sys/view/csharp-net_01_1474182326528.html

二、字节数组转换为ASCII字符串

[csharp]  view plain  copy
  1. using System;  
  2. using System.Text;  
  3.    
  4. namespace BasicApp  
  5. {  
  6.     class Program  
  7.     {  
  8.         public static void Main(string[] args)  
  9.         {  
  10.             // 字节数组  
  11.             byte[] ba = new byte[] { 119,104,97,116,50,49,46,99,111,109 };  
  12.             // 转换为ASCII的字符  
  13.             string s = Encoding.ASCII.GetString(ba);  
  14.             // 打印转换后的内容  
  15.                Console.WriteLine(s);  
  16.                   
  17.             Console.ReadKey(true);  
  18.         }  
  19.             
  20.     }  
  21. }  
C#字节数组转换为ASCII字符的方法:Encoding.ASCII.GetString(bytes);
转载: http://www.what21.com/sys/view/csharp-net_01_1474184697044.html


三、字节数组与Unicode/BigEndianUnicode字符串相互转换

[java]  view plain  copy
  1. using System;  
  2. using System.Text;  
  3.    
  4. namespace BasicApp  
  5. {  
  6.     class Program  
  7.     {  
  8.         public static void Main(string[] args)  
  9.         {  
  10.             string s = "IT小奋斗";  
  11.             // 将字符串转换为Unicode数组  
  12.             byte[] bytes = Encoding.BigEndianUnicode.GetBytes(s);  
  13.             foreach (byte b in bytes){  
  14.                 Console.Write(b + ",");  
  15.             }  
  16.             Console.WriteLine();  
  17.                
  18.             // 字节数组  
  19.             byte[] bytes1 = new byte[] { 73,0,84,0,15,92,75,89,151,101 };  
  20.             // 转换为 Unicode  
  21.             string str = Encoding.Unicode.GetString(bytes1);  
  22.             Console.WriteLine(str);  
  23.                   
  24.             // 字节数组  
  25.             byte[] bytes2 = new byte[] { 0,73,0,84,92,15,89,75,101,151 };  
  26.             // 转换为 BigEndianUnicode  
  27.             string str2 = Encoding.BigEndianUnicode.GetString(bytes2);  
  28.             Console.WriteLine(str2);  
  29.                
  30.             Console.ReadKey(true);  
  31.         }  
  32.             
  33.     }  
  34. }  

Unicode编码和BigEndianUnicode编码都使是用2个字节对一个字符进行编码,不同点就是过储存字符的顺序正好相反,即前后颠倒。

转载: http://www.what21.com/sys/view/csharp-net_01_1474185632739.html


四、按照编码(ASCII、UTF7、UTF8、Unicode、BigEndianUnicode和UTF32)将字符串转换为字节数组

[csharp]  view plain  copy
  1. using System;  
  2. using System.IO;  
  3. using System.Text;  
  4.    
  5. namespace BasicApp  
  6. {  
  7.     class Program  
  8.     {  
  9.         public static void Main(string[] args)  
  10.         {  
  11.             string file = "c://what21.txt";  
  12.             using (StreamWriter output = new StreamWriter(file))   
  13.             {  
  14.                 // 写出文件的字符串  
  15.                 string srcString = "IT小奋斗";  
  16.        
  17.                 // 安装不同的编码转换为数组  
  18.                 byte[] asciiString = Encoding.ASCII.GetBytes(srcString);  
  19.                 byte[] utf7String = Encoding.UTF7.GetBytes(srcString);  
  20.                 byte[] utf8String = Encoding.UTF8.GetBytes(srcString);  
  21.                 byte[] unicodeString = Encoding.Unicode.GetBytes(srcString);  
  22.                 byte[] beUnicodeString = Encoding.BigEndianUnicode.GetBytes(srcString);  
  23.                 byte[] utf32String = Encoding.UTF32.GetBytes(srcString);  
  24.                    
  25.                 // 格式化输出编码数组   
  26.                 output.WriteLine("ASCII  Bytes: {0}", BitConverter.ToString(asciiString));  
  27.                 output.WriteLine("UTF-7  Bytes: {0}", BitConverter.ToString(utf7String));  
  28.                 output.WriteLine("UTF-8  Bytes: {0}", BitConverter.ToString(utf8String));  
  29.                 output.WriteLine("Unicode  Bytes: {0}", BitConverter.ToString(unicodeString));  
  30.                 output.WriteLine("BigEndianUnicode  Bytes: {0}", BitConverter.ToString(beUnicodeString));  
  31.                 output.WriteLine("UTF32  Bytes: {0}", BitConverter.ToString(utf32String));  
  32.                    
  33.                 // Console输出  
  34.                 Console.WriteLine(BitConverter.ToString(utf8String));  
  35.                 Console.WriteLine(BitConverter.ToString(utf7String));  
  36.                 Console.WriteLine(BitConverter.ToString(asciiString));  
  37.                 Console.WriteLine(BitConverter.ToString(unicodeString));  
  38.                 Console.WriteLine(BitConverter.ToString(beUnicodeString));  
  39.                 Console.WriteLine(BitConverter.ToString(utf32String));  
  40.             }  
  41.             Console.ReadKey(true);  
  42.         }  
  43.             
  44.     }  
  45. }  

将一个字符串,按照编码ASCII、UTF7、UTF8、Unicode、BigEndianUnicode和UTF32分别转换成编码后的数组,经过BitConverter类格式化后,保存到文件并Console打印。

转载: http://www.what21.com/sys/view/csharp-net_01_1474186676521.html


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值