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

时间:2015-12-11 20:48:29

标签: c# algorithm encoding arabic-support

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:我在互联网和其他帖子上尝试了很多算法,但没有一个能真正解决这个问题

1 个答案:

答案 0 :(得分:1)

你可以简单地使用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);