请使用C#编写多字节的字符串拆分程序
时间: 2024-02-27 15:56:01 浏览: 106
16进制与字符串、字节数组之间的转换
5星 · 资源好评率100%
以下是使用C#编写的多字节字符串拆分程序代码示例:
```csharp
using System;
using System.Text;
class Program
{
static void Main(string[] args)
{
string str = "你好,世界!Hello, world!";
byte[] bytes = Encoding.UTF8.GetBytes(str); // 将字符串转换为UTF-8编码的字节数组
int offset = 0;
int count = 0;
while (offset < bytes.Length)
{
if ((bytes[offset] & 0x80) == 0x00) // ASCII字符
{
count = 1;
}
else if ((bytes[offset] & 0xE0) == 0xC0) // 2字节字符
{
count = 2;
}
else if ((bytes[offset] & 0xF0) == 0xE0) // 3字节字符
{
count = 3;
}
else if ((bytes[offset] & 0xF8) == 0xF0) // 4字节字符
{
count = 4;
}
else
{
throw new Exception("Invalid UTF-8 encoding."); // 非法的UTF-8编码
}
string subStr = Encoding.UTF8.GetString(bytes, offset, count); // 获取子字符串
Console.WriteLine(subStr);
offset += count;
}
}
}
```
该程序将字符串按照UTF-8编码的规则进行拆分,并输出每个子字符串。可以根据需要修改代码以适应不同的字符编码。
阅读全文