0

你好我的朋友这里我有一个算法可以将字符串转换为字节数组英文文本它工作正常但是在另一个语言中就像阿拉伯语一样我不知道因为它是一个 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:我在互联网上和其他帖子中尝试了很多算法,但没有一个能真正解决问题

4

1 回答 1

1

您可以简单地使用 aSystem.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);
于 2015-12-11T21:10:25.510 回答