0

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;
        }

したがって、英語でテキストを渡す場合、バイト長は正常ですが、別の言語でテキストを渡す場合、 0があるため正常です* 2

ここで欲しいのは、あらゆるタイプのテキストを変換することです。助けてください

例: アラビア語のテキストは 40 0 4 0 10 0 214 0 7 0のようなバイト配列を生成するため、奇数インデックスごとにゼロがあり、バイト配列の長さは 2 倍になります。

ps:インターネット上や別の投稿から多くのアルゴリズムを試しましたが、実際に問題を解決するものはありませんでした

4

1 に答える 1

1

a を使用し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);
于 2015-12-11T21:10:25.510 に答える