-2

文字列、int などをバイト/バイト配列に変換するための静的メソッドはありますか?

私はすでにこの方法について知っています:

    public static byte[] FromString(string Input)
    {
        ASCIIEncoding ByteEncoder = new ASCIIEncoding();
        return ByteEncoder.GetBytes(Input);
    }

しかし、私はもっと良いものがあるかどうか疑問に思っていました。使用する ASCII エンコーダーの静的インスタンスを作成すると問題になるでしょうか?

また、パフォーマンスの観点から、上記のASCII変換方法は、forループまたは複数行のソリューションである他のそのような方法を介して行う場合と比較してどうですか?

また、いつ ASCII と Unicode を使用する必要がありますか?

ウィリアム

4

4 に答える 4

4

静的メソッドはありません。ただし、 の静的インスタンスがありEncodingます。

System.Text.Encoding.ASCII.GetBytes().

パフォーマンスに関しては、BCL を信頼する必要があります。注意深く書かれているので、最適に近いコードが期待でき、常に考えているとは限らないすべてのエッジケースの処理が確実に改善されます。

于 2012-05-30T20:00:51.323 に答える
1

ASCIIEncoding.ASCII.GetBytes()はどうですか?

于 2012-05-30T20:01:49.893 に答える
1

BitConverterを見てください。整数と浮動小数点をサポートしています。また、文字列のEncoding.UTF8

BitConverter.GetBytes(4); // Int32

System.Text.Enconding.UTF8.GetBytes("My string"); // String

Unicode を使用しなくても、おそらくサポートしたいと思うでしょう。必要に応じて拡張文字をサポートできるように、ASCII の代わりに UTF8 を試してください。

于 2012-05-30T20:02:39.950 に答える
1

主な質問には答えましたが、最後の質問に答えるには、英語以外の文字セットと記号をサポートする必要がある場合は Unicode を使用してください。グローバル文字の英語のサブセットを使用している場合は、ASCII を使用してください (ただし、私は UTF-8 を好みます。また、これは Spolsky の知恵を共有する良い機会です 。http://www.joelonsoftware.com/articles/Unicode .html -非常に優れた記事。

于 2012-05-30T20:10:48.590 に答える