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);
相关文章
- VirtualBox7中安装macOS big sur,在windows10&11上「保姆级教程」
- 统信UOS应用相关问题解决方案:Virtualbox启动USB设备支持的方法
- Windows下安装Ubuntu虚拟机方法(在windows上安装ubuntu)
- 如何在 Windows 11 上安装和使用 VirtualBox:2022详细的分步教程
- 甲骨文虚拟机VirtualBox 7.1.8发布:修复CPU占用100% 问题
- 成功尝试在NetBSD9.0中安装Mate Desktop环境记录
- windows下VirtualBox vagrant的安装配置
- ESP32/8266开发环境超详细安装步骤
- 如何在 Virtualbox 虚拟机中安装 Pop!_OS
- 这可是全网eNSP安装最完整,最详细的图解,没有之一(常见问题)