C#实现字符串、字节数组、16进制字符串之间的相互转换
C#可以使用内置的方法和构造函数来实现字符串、字节数组和16进制字符串之间的相互转换。以下是一些示例代码:
**字符串转换为字节数组**
string str = "Hello World";
byte[] byteArray = Encoding.UTF8.GetBytes(str);
在这个例子中,我们使用了`Encoding.UTF8`类的`GetBytes()`方法将字符串转换为UTF-8编码的字节数组。
**字节数组转换为字符串**
byte[] byteArray = { 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100 };
string str = Encoding.UTF8.GetString(byteArray);
在这个例子中,我们使用了`Encoding.UTF8`类的`GetString()`方法将字节数组转换为UTF-8编码的字符串。
**字符串转换为16进制字符串**
string str = "Hello World";
string hex = BitConverter.ToString(Encoding.UTF8.GetBytes(str));
在这个例子中,我们首先使用`Encoding.UTF8.GetBytes()`方法将字符串转换为字节数组,然后使用`BitConverter.ToString()`方法将字节数组转换为16进制字符串。
**16进制字符串转换为字节数组**
public static byte[] ToBytesFromHexString(this string hexString)
{
//以 ' ' 分割字符串,并去掉空字符
string[] chars = hexString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
byte[] returnBytes = new byte[chars.Length];
//逐个字符变为16进制字节数据
for (int i = 0; i < chars.Length; i++)
{
returnBytes[i] = Convert.ToByte(chars[i], 16);
}
return returnBytes;
}
注意,以上转化假定传过来的是类似"68 65 6c 6c 6f 20 57 6f 72 6c 64"这样的16进制格式的字符串。
**16进制字符串转换为可读字符串**
基于04,可通过如下代码实现**16进制字符串转换为可读字符串**。
string hex = "68 65 6c 6c 6f 20 57 6f 72 6c 64";
byte[] byteArray = ToBytesFromHexString(hex);
string str = Encoding.UTF8.GetString(byteArray);
相关文章
- Linux服务器硬件信息查询与日常运维命令总结
- Linux服务器带宽跑不满?用ethtool调优网卡参数,性能提升30%
- 如何在 Rocky Linux 中查看网卡流量?跟着小编学习iftop安装和使用
- Linux查看网卡速率_linux查看网卡当前速率
- 五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。
- 我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- html5和css3的常用参考网_基于html5和css3的网页制作
- 超详细的网络抓包神器 tcpdump 使用指南
- Vue 技术栈(全家桶)_vue全栈项目教程
- 学习ES6- 入门Vue(大量源代码及笔记,带你起飞)