binaryreader を使用して読み取るときに、カスタムエンコーディングを使用したり、base16 文字 (日本語の SHIFT-JIS のように 2 バイト文字) を変換したりできますか? つまり、それらの読み取り中に、0x00ff がある場合、読み取り時と書き込み時 (ファイルの編集、binarywriter を使用した書き込み) のときに、それを "\et" に変換します。
質問する
5400 次
1 に答える
4
独自のエンコードとデコードを実装したいと思うので、アルゴリズムに依存する実装方法に問題があります。デフォルトでEncoding
は、Unicode, BigEndianUnicode, UTF-8, ...
. ご覧のとおり、実際のandEncoding
を実行するためのいくつかのメソッドを備えたクラスにすぎないため、カスタムエンコーディングは一切必要ないことを提案しました。これは、よく知られている一般的なエンコーディングを処理するのに非常に役立ちます...ただし、独自のエンコーディングについては、次のようにほとんどすべてのコア関数を実装する必要があります。encoding
decoding
Unicode
public class CustomEncoding : Encoding
{
//NOTE: There are some abstract members requiring you to implement or declare in this derived class.
public override byte[] GetBytes(string s)
{
//Your code goes here
}
public override string GetString(byte[] bytes)
{
//Your code goes here
}
//And many other virtual (overridable) methods which you can override to implement your custom Encoding fully
}
それが役に立てば幸い!
于 2013-06-30T01:26:45.733 に答える