2

在使用 binaryreader 读取它们时,我是否可以使用一些自定义编码或转换一些 base16 字符(如日语 SHIFT-JIS 中的两个字节字符)?我的意思是,在阅读它们时,例如,如果有一个 0x00ff,它会在读取和写入时将其转换为“\et”(编辑文件,并使用 binarywriter 写入)。

4

1 回答 1

4

我认为您想实现自己的编码和解码,所以问题与您如何实现它们有关,这取决于您的算法。默认Encoding仅支持流行的编码,例如Unicode, BigEndianUnicode, UTF-8, .... 我建议您不需要任何类型的自定义编码,如您所见Encoding,它只是一个包含一些方法来执行实际的类encodingdecoding它可以帮助您处理众所周知的流行编码Unicode,...但是对于你自己的Encoding,你必须像这样实现几乎所有的核心功能:

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 回答