C# 使用自定义编码或添加自定义字符

C# 使用自定义编码或添加自定义字符,c#,winforms,encoding,C#,Winforms,Encoding,在使用binaryreader读取时,我是否可以使用一些自定义编码或转换一些base16字符(如日语SHIFT-JIS中的两字节字符)?我的意思是,在读取它们时,例如,如果有0x00ff,它会将其转换为\et,在读取和写入以及编辑文件时,以及使用binarywriter写入时。我认为您希望实现自己的编码和解码,因此问题与如何实现它们有关,这取决于您的算法。默认编码仅支持流行的编码,如Unicode、BigEndianUnicode、UTF-8等。。。。我建议您不需要任何类型的自定义编码,正如您所

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

我认为您希望实现自己的编码和解码,因此问题与如何实现它们有关,这取决于您的算法。默认编码仅支持流行的编码,如Unicode、BigEndianUnicode、UTF-8等。。。。我建议您不需要任何类型的自定义编码,正如您所看到的,编码只是一个类,具有一些方法来执行实际的编码和解码,它在处理众所周知的、流行的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
}

希望有帮助

我认为您希望实现自己的编码和解码,因此问题与如何实现它们有关,这取决于您的算法。默认编码仅支持流行的编码,如Unicode、BigEndianUnicode、UTF-8等。。。。我建议您不需要任何类型的自定义编码,正如您所看到的,编码只是一个类,具有一些方法来执行实际的编码和解码,它在处理众所周知的、流行的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
}

希望有帮助

我认为这里不需要自定义编码,只要自己使用某种方法在字节和字符之间进行转换。我一直在研究如何在读取过程中进行转换,但找不到任何东西:/我认为这里不需要自定义编码,只需自己使用某种方法在字节和字符之间进行转换。我一直在阅读过程中研究如何进行转换,但找不到任何方法:/Thank,因此“public override string GetStringbyte[]bytes”用于自定义编码,我的代码将用适当的字符串替换字节,正当是的,为什么我需要一个“override byte[]”?@omarrio GetString用于解码从字节到字符串的转换,而GetBytes用于编码从字符串到字节的转换。谢谢,“public override string GetStringbyte[]bytes”用于自定义编码,其中我的代码将用适当的字符串替换字节,对吗?既然如此,为什么我需要一个“override byte[]”?@omarrio GetString用于解码从字节到字符串的转换,而GetBytes用于编码从字符串到字节的转换。