将byte[]
编码为String
并将String
解码为byte[]
而不使用Base64的其他方法。
因为我将byte[]
编码为String然后使用LZW压缩String
。我无法使用Base64将其解码回byte[]
。是否有编码器或解码器可以保持解码String
尽管String
已被LZW修改过?
答案 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操纵字节序列 - 因此从字节开始时不需要编码。