源自C#与.NET程序员面试宝典。

如何在Byte[]和String之间进行转换?
比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲。它是计算机物理内存保存的最基本单元。
字节(B):8个比特,0—255的整数表示
编码:字符必须编码后才能被计算机处理。早期计算机使用7为AscII编码,为了处理汉字设计了中文简体GB2312和big5

字符串与字节数组之间的转换,事实上是现实世界的信息和数字世界信息之间的转换,势必涉及到某种编码方式,不同的编码方式将导致不同的转换结果。C#中常使用System.Text.Encoding来管理常用的编码。下面直接上代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ByteToString
{
class Program
{
static void Main(string[] args)
{
string str = "鞠哥真帅!"; //使用UTF编码。。。
Byte[] utf8 = StrToByte(str, Encoding.UTF8);
//估计C#当时设计时没有中文简体,这是后来中国搞的?
Byte[] gb2312 = StrToByte(str,Encoding.GetEncoding("GB2312")); Console.WriteLine("这是UTF8(鞠哥真帅),长度是:{0}",utf8.Length);
foreach (var item in utf8)
{
Console.Write(item);
} Console.WriteLine("\n\n这是gb2312(鞠哥真帅),长度是:{0}",gb2312.Length);
foreach (var item in gb2312)
{
Console.Write(item);
} //用utf8编码的字节数组转换为str
string utf8Str = ByteToStr(utf8,Encoding.UTF8);
string gb2312Str = ByteToStr(gb2312,Encoding.GetEncoding("GB2312")); Console.WriteLine("\n\nutf8: {0}",utf8Str);
Console.WriteLine("gb2312: {0}",gb2312Str);
Console.ReadKey(); } //C#通常使用System.Text.Encoding编码 //字符串转数组
static Byte[] StrToByte(string str, Encoding encoding)
{
return encoding.GetBytes(str);
} //数组转换字符串
static String ByteToStr(Byte[] bt,Encoding encoding)
{
return encoding.GetString(bt);
} }
}

如何在Byte[]和String之间进行转换的更多相关文章

  1. golang []byte和string的高性能转换

    golang []byte和string的高性能转换 在fasthttp的最佳实践中有这么一句话: Avoid conversion between []byte and string, since ...

  2. Python3中内置类型bytes和str用法及byte和string之间各种编码转换,python--列表,元组,字符串互相转换

    Python3中内置类型bytes和str用法及byte和string之间各种编码转换 python--列表,元组,字符串互相转换 列表,元组和字符串python中有三个内建函数:,他们之间的互相转换 ...

  3. C#中char[]与string之间的转换;byte[]与string之间的转化

    目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...

  4. C#中char[]与string之间的转换

    string 转换成 Char[] string ss = "abcdefg"; char[] cc = ss.ToCharArray(); Char[] 转换成string st ...

  5. Android Bitmap与DrawAble与byte[]与InputStream之间的转换工具类【转】

    package com.soai.imdemo; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; ...

  6. Byte[]和BASE64之间的转换

    一. BASE64编码 把byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是: l 大写的A-Z l 小写的a-z l 数字0-9 l '+' 和 '/' l 空 ...

  7. c# String ,String[] 和 List<String>之间的转换

    C#对字符串进行处理时,经常需要进行String,String[]和List<String>之间的转换 本文分析一下它们的差异和转换 一. 1. String > String[] ...

  8. 基本数据类型、包装类、String之间的转换

    package 包装类; /** *8种基本数据类型对应一个类,此类即为包装类 * 基本数据类型.包装类.String之间的转换 * 1.基本数据类型转成包装类(装箱): * ->通过构造器 : ...

  9. java字符数组char[]和字符串String之间的转换

    java字符数组char[]和字符串String之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用String.valueOf()将字符数组转换成字符串 void (){ cha ...

随机推荐

  1. hdu 2460

    这是一道双联通分量的题,要用到LCA算法: 听说这个算法有两种实现方式:一个是dfs+线段树或着RMQ;一个是用tarjin: 我用的是tarjin: 题目比较简单,就是每次加了一条边之后剩下的桥的个 ...

  2. 思考 Swift 中的 MirrorType 协议

    Swift中的反射非常有限,仅允许以只读方式访问元数据的类型子集.或许 Swift 因有严格的类型检验而不需要反射.编译时已知各种类型,便不再需要进行进一步检查或区分.然后大量的 Cocoa API ...

  3. 两个有关Knockout自定义拓展方法fn的小技巧

    Adding custom functions using "fn" 让observable自增/自减 最简单的方法是self.num(self.num() + 1), 但是这个写 ...

  4. App架构经验总结(转)

    原文链接: http://keeganlee.me/post/architecture/20160303 架构因人而异,不同的架构师大多会有不同的看法:架构也因项目而异,不同的项目需求不同,相应的架构 ...

  5. jQuery技术内幕电子版4

    参数selector是复杂HTML代码 则利用浏览器的innerHTML机制创建DOM元素 第157行:如果HTML代码满足缓存条件,则在使用转换后的DOM元素时,必须先复制一份再使用,否则可以直接使 ...

  6. JavaScript高级程序设计35.pdf

    遍历 “DOM2级遍历和范围”模块定义了两个用于辅助完成顺序遍历DOM结构的类型:NodeIterator和TreeWalker,两个类型能够基于给定的起点对DOM结构执行深度优先(depth-fir ...

  7. Linux趣谈

    要解释操作系统是如何工作的,首先可以用这几个关键字来简单地概括一下:冯诺依曼.堆栈机制和中断机制. 提到冯诺依曼很显然就是在说存储程序了,这大概是计算机能够运行最为基础的条件,属于基石级别的.它的基本 ...

  8. Nginx+tomcat负载均衡并动静态分离

    Nginx使用正则表达式配置location,指定某些后缀的文件直接从文件路径中找(如*.jpg直接去C:/XX/XX/XX/img下找),其他的请求转发给tomcat 同时可以配置多个tomcat ...

  9. div border-radius

    可以画个1/4之一的圆也可以画整个圆 <html> <style type="text/css"> div{ background-color: #000; ...

  10. hdoj 5494 Card Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5494 题意:首先一个数t代表测试样例组数  然后两个数n,m 代表数列中有n个数  从中取m个数   ...