如何将8位字节转换为7位字节(Base 256到Base 128)

Gre*_*zer 1 c#

如何将8位字节转换为7位字节(Base 256到Base 128)

我希望做这样的事情:

public string BytesToString(byte[] in)
{

}

public byte[] StringToBytes(string in)
{

}
Run Code Online (Sandbox Code Playgroud)

我知道base64可用,但它扩展了一个字节数组太多了.

Jon*_*eet 5

Base64每个字符编码6位,产生一个字符串,只需很少的努力就可以可靠地传输(模数小心URL).

没有具有相同属性的7位字母表 - 例如,如果给出控制字符,许多系统将会失败.

绝对相信你不需要经历任何这样的系统(包括存储)吗?这个额外的微小空间节省真的足以证明必须担心某些东西是否会将"\n"更改为"\ r \n"或反之,或者丢弃字符0?

(对于存储示例,2100字节= base64中的2800个字符,或base128中的2400个字符.与IMO不同.)

我强烈建议您查看是否可以找到额外的存储空间 - 以后可能会节省很多麻烦.