C# 字符串转byte数组
时间: 2023-08-16 21:15:33 浏览: 168
在C#中,将字符串转换为字节数组可以使用Encoding类的GetBytes方法。以下是一个示例代码:
```csharp
string str = "Hello, World!";
byte[] byteArray = Encoding.UTF8.GetBytes(str);
```
在上面的示例中,我们使用UTF8编码将字符串转换为字节数组。你也可以使用其他编码,例如ASCII编码或Unicode编码,根据你的需求进行选择。
请注意,GetBytes方法返回的是一个字节数组,每个字符都被编码为一个或多个字节。如果你需要将字节数组还原回字符串,可以使用Encoding类的GetString方法。
```csharp
string str = Encoding.UTF8.GetString(byteArray);
```
这将把字节数组转换回原始的字符串。
希望这能帮助到你!如果你还有其他问题,请随时提问。
相关问题
c# hex 字符串转 byte数组
在C#中,将HEX字符串转换为Byte数组通常涉及到两步操作:首先解析HEX字符串,然后将每个十六进制字符对应的实际二进制值组合成字节数组。这里是一个简单的示例:
```csharp
using System;
using System.Text;
public static byte[] HexStringToByteArray(string hex)
{
// 检查输入是否为空
if (string.IsNullOrEmpty(hex))
throw new ArgumentException("Hex string cannot be empty or null");
// 将HEX字符串转换为ASCII字符数组
char[] chars = hex.ToCharArray();
// 创建一个新的StringBuilder用于构建字节
StringBuilder sb = new StringBuilder();
for (int i = 0; i < chars.Length; i += 2)
{
// 提取两个连续的十六进制字符并转换为十进制数
int value = Convert.ToInt32(chars[i] + chars[i + 1], 16);
// 添加到字节数组
sb.Append((byte)value);
}
// 返回最终的字节数组
return sb.ToByteArray();
}
```
你可以像这样调用这个方法:
```csharp
string hexStr = "48656C6C6F"; // "Hello"的HEX表示
byte[] byteArray = HexStringToByteArray(hexStr);
```
字符串转byte数组 C#
### C# 中字符串转换为字节数组的方法
在 C# 编程语言中,可以通过 `System.Text.Encoding` 类实现字符串与字节数组之间的相互转换。以下是几种常见的编码方式及其对应的代码示例。
#### UTF-8 编码
UTF-8 是一种广泛使用的字符编码标准,在处理国际化文本时非常常见。通过 `Encoding.UTF8.GetBytes` 方法可将字符串转换为字节数组:
```csharp
using System;
using System.Text;
class Program {
static void Main() {
string str = "Hello, World!";
byte[] byteArray = Encoding.UTF8.GetBytes(str);
Console.WriteLine("字符串转字节数组(UTF-8):");
foreach (byte b in byteArray) {
Console.Write(b + " ");
}
Console.WriteLine();
}
}
```
此方法适用于大多数场景下的字符串转换[^1]。
#### ANSI 编码
ANSI 编码通常用于本地化环境,默认情况下会根据系统的区域设置来决定具体的编码形式。可以使用 `Encoding.Default.GetBytes` 来完成这一操作:
```csharp
string str = "Hello, World!";
byte[] byteArray = Encoding.Default.GetBytes(str);
Console.WriteLine("字符串转字节数组(Default/ANSI):");
foreach (byte b in byteArray) {
Console.Write(b + " ");
}
Console.WriteLine();
```
这种方法适合于特定地区的简单字符集需求[^2]。
#### GB2312 和 Big5 编码
对于支持中文简体或繁体的应用程序,可以选择相应的编码方案如 GB2312 或 Big5 进行转换。例如:
```csharp
// 简体中文(GB2312)
byte[] gb2312Bytes = Encoding.GetEncoding("gb2312").GetBytes("哈啊a1");
Console.WriteLine("字符串转字节数组(GB2312):" + string.Join("-", Array.ConvertAll(gb2312Bytes, x => x.ToString())));
// 繁体中文(Big5)
byte[] big5Bytes = Encoding.GetEncoding("big5").GetBytes("哈啊a1");
Console.WriteLine("字符串转字节数组(Big5):" + string.Join("-", Array.ConvertAll(big5Bytes, x => x.ToString())));
```
这些编码特别针对亚洲语言设计,能够更精确地表示汉字等复杂字符[^3]。
以上就是多种条件下从字符串到字节数组的不同转换手段以及其实现代码片段。
阅读全文
相关推荐

















