C#中字符串与字节数组的转换方式

作者:springsnow 时间:2023-06-28 10:43:53 

一、编码(转成字节数组)GetBytes

  1、ASII码:字符串中的每个字符用一个字节表示。

每个字符实际上只使用了7位,从00h-7Fh。只能表达128个字符。不能代表汉字,

byte[] b = Encoding.ASCII.GetBytes("yourstring");
Console.Write(string.Join("-", b.Select(p => p.ToString())));

   //  得到:121-111-117-114-115-116-114-105-110-103   

2、Unicode码:字符串中的每个字符用两个字节表示。

byte[] b = Encoding.Unicode.GetBytes("哈啊a1");

  //  得到:200-84-74-85-97-0-49-0

3、简体中文:字符串中的每个中文字符用两个字节表示,其他字符用一个字节表示。

byte[] b = Encoding.GetEncoding("gb2312").GetBytes("哈啊a1");//繁体中文”big5”
Console.Write(string.Join("-", b.Select(p => p.ToString())));

   //  得到:185-254-176-161-97-49

UTF-8中,一个汉字对应三个字节,GB2312中一个汉字占用两个字节。 
不论何种编码,字母数字都不编码,特殊符号编码后占用一个字节。

二、解码(转成字符串):GetString、GetChars

Encoding.XXX.GetString(byte[] data,[,index,count]);

三、基于Base64(ASCII)编码的字符串与字节数组的转换

1、将指定的字符串(它将二进制数据编码为 Base64 数字)转换为等效的 8 位无符号整数数组。

byte[] bt=Convert.FromBase64String("字符串");

2、将 8 位无符号整数数组的值转换为其用 Base64 数字编码的等效字符串表示形式。

Convert.ToBase64String(byte[] data,[,index,count]);

四、字节数组与字符数组转换

1、字符数组转字节数组

Encoding.XXX.GetEncoder().GetBytes(char[],0.length,byte[],0,true)

2、字节数组转字符数组

Encoding.XXX.GetDecoder().GetChars(byte[],0.length,char[],0)

来源:https://www.cnblogs.com/springsnow/p/9546404.html

标签:C#,字符串,字节,数组,转换
0
投稿

猜你喜欢

  • Android 微信摇一摇功能实现详细介绍

    2023-06-21 21:00:09
  • SpringBoot启动访问localhost:8080报错404的解决操作

    2021-07-20 08:44:00
  • android实现程序自动升级到安装示例分享(下载android程序安装包)

    2023-08-12 09:37:19
  • Android IdleHandler使用方法详解

    2023-11-17 20:48:11
  • C#实现最完整的文件和目录操作类实例

    2022-05-19 09:38:51
  • Android编程调用Camera和相册功能详解

    2023-12-15 00:09:23
  • SpringBoot MongoDB 索引冲突分析及解决方法

    2023-01-23 06:28:05
  • C#利用File方法对文件的操作总结(字节写入和读取)

    2022-07-20 09:30:55
  • spring中使用mybatis plus连接sqlserver的方法实现

    2022-11-16 12:05:09
  • 浅谈Java实现面向对象编程java oop

    2022-12-26 03:45:29
  • Java设置PDF有序和无序列表的知识点总结

    2022-04-18 03:29:27
  • Java工具类DateUtils实例详解

    2022-08-22 00:40:35
  • IDEA使用Gradle构建SpringBoot项目工程的详细教程

    2022-08-31 16:28:26
  • DecimalFormat多种用法详解

    2022-11-13 15:06:52
  • Struts2拦截器 关于解决登录的问题

    2023-07-02 14:06:09
  • Android简单的利用MediaRecorder进行录音的实例代码

    2023-04-24 03:52:57
  • Java实现导出word表格的示例详解

    2023-01-02 21:36:48
  • SpringBoot生产环境和测试环境配置分离的教程详解

    2022-04-03 22:09:47
  • Java多线程状态及方法实例解析

    2021-09-10 22:49:53
  • Java多线程yield心得分享

    2023-11-29 05:58:15
  • asp之家 软件编程 m.aspxhome.com