将具有任何编码的任何文本转换为字节数组C#

本文关键字:任何 字节 字节数 转换 数组 文本 编码 | 更新日期: 2023-09-27 18:26:25

Hello My Firends这里有一个将字符串转换为字节数组的算法英文文本可以很好地工作,但在另一种语言中,就像阿拉伯语一样,我不知道,因为它是unicode,但我想制作一种算法,可以转换任何类型的文本

这是我的代码:

 public static byte[] StringToByteArray(string x)
    {
        byte[] bytes = new byte[x.Length * sizeof(char)];
        Buffer.BlockCopy(x.ToCharArray(), 0, bytes, 0, bytes.Length);
        return bytes;
        }

因此,当我用英语传递文本时,字节长度是正常,但当我用其他语言传递文本时是*2的,因为存在0的

所以我想在这里转换任何类型的文本,所以请帮助我

示例:阿拉伯文本将生成字节数组,就像40 0 4 0 10 0 214 0 7 0所以我每个奇数索引都有零,字节数组长度将是的2倍

ps:我在互联网上和其他帖子中尝试了很多算法,但都没有真正解决问题

将具有任何编码的任何文本转换为字节数组C#

您可以简单地使用System.Text.Encoding从unicode文本中获取字节,还可以转换回原始unicode字符串,如下所示:

string source = "Your arabic text goes here...";
var byes = System.Text.Encoding.UTF8.GetBytes(source);
string dest = System.Text.Encoding.UTF8.GetString(byes);