编码器和解码器

时间:2016-05-27 03:13:48

标签: string base64 byte encoder lzw

byte[]编码为String并将String解码为byte[]而不使用Base64的其他方法。

因为我将byte[]编码为String然后使用LZW压缩String。我无法使用Base64将其解码回byte[]。是否有编码器或解码器可以保持解码String尽管String已被LZW修改过?

1 个答案:

答案 0 :(得分:0)

不实用,但易于实现,并且字节到Unicode字符的可逆编码很容易将每个字节编码为(offset + byte_value),使得所有256个值都适合某个有效的Unicode块。

即。查看Unicode blocks范围2200..22FF(数学运算符)对于此类操作非常合理(C#样本):

 char EncodeByte(byte x) { return (char)(0x2200 + x);}
 byte DecodeByte(char x) { return (byte)(x - 0x2200);}

注意:常规LZW操纵字节序列 - 因此从字节开始时不需要编码。