5

UTF-8 をバイト配列に書き込みたいというパフォーマンスに敏感なシナリオがあります。

.NET StringBuilder クラスをざっと見てみると、UTF-16 をネイティブにビルドするだけだと思います。Encoding.UTF8.GetBytes(str) は、私が使いたくない余分な割り当てと余分なクロック サイクルを意味します。

ネイティブの UTF-8 ライターはありますか?

4

1 に答える 1

4

MemoryStreamは、バイトの StringBuilder のようなものです。これを使用して、バイトのシーケンスを繰り返し追加することにより、バイトのシーケンスを効率的に作成できます。ただし、文字列を追加するメソッドはありません。最初に各文字列をバイト配列に変換することを避けるために、変換を処理するStreamWriterでストリームをラップできます。

于 2012-06-28T14:28:14.297 に答える