在使用 binaryreader 读取它们时,我是否可以使用一些自定义编码或转换一些 base16 字符(如日语 SHIFT-JIS 中的两个字节字符)?我的意思是,在阅读它们时,例如,如果有一个 0x00ff,它会在读取和写入时将其转换为“\et”(编辑文件,并使用 binarywriter 写入)。
问问题
5400 次
1 回答
4
我认为您想实现自己的编码和解码,所以问题与您如何实现它们有关,这取决于您的算法。默认Encoding
仅支持流行的编码,例如Unicode, BigEndianUnicode, UTF-8, ...
. 我建议您不需要任何类型的自定义编码,如您所见Encoding
,它只是一个包含一些方法来执行实际的类encoding
,decoding
它可以帮助您处理众所周知的流行编码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 回答