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