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); 相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
- Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
- Spring Boot+Pinot实战:毫秒级实时竞价系统构建
- SpringBoot敏感配置项加密与解密实战
- SpringBoot 注解最全详解,建议收藏!
- Spring Boot 常用注解大全:从入门到进阶
- SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
- Springboot集成Kafka原理_spring集成kafka的原理
- Spring Boot中@Data注解的深度解析与实战应用
- 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
