什么文本编码方案使用时具有的二进制数据,需要发送过一个ascii频道吗?

StackOverflow https://stackoverflow.com/questions/2090009

  •  21-09-2019
  •  | 
  •  

如果你有的二进制数据,需要进行编码,什么样的编码方案做你用?

我知道的:

  • 进制编码.非常简单,但很详细,展开一个字节到两个。
  • 基64.最常见的,不是那么详细,扩大了三个字节到四个。
  • 基85.不常见的,较不详细,再次扩大的四个字节到五个。

是否有任何其他编码方案共同使用?如果是这样,什么都有优点和缺点?

编辑:这是有用的,例如,当试图以任意数据存储在一个饼干。饼干只能储存的文本,不是任意的数据,所以你需要把它在一些方式,最好的方式来把它找回来。此外,假设你正在使用一个无国籍的服务器,因此,无法保存国家在服务器上,只是把一个标识到cookie。当然,如果你这样做你也会需要一些方法核实用户,是通过回到你的是什么您传递给用户,例如一个签名。

此外,由于目前的共识是,应该使用base64因为它是普遍的,我还将指出,本 我用什么...我只是好奇如果任何人使用任何东西,如果是,为什么。

编辑:只是以防万一有人绊跨此,如果你想使用Base64将数据存储在一个饼干,你需要用到的 修改Base64执行情况.看看 这个答案 的原因。

有帮助吗?

解决方案

用于编码cookie值,需要谨慎小心。看看这个 老答案:

与版0饼干、价值观应该 不含有的空白、支架 括号, 等号, ,逗号, 双引号,斜线问题 标记,标志,冒号, 分号。空值可能不 表现的同样的方式对所有的浏览器。

Base64编码可以产生 = 符号用的某些输入的,这在技术上是不允许在饼干(版0饼干,无论如何,这都是最广泛的支持)。在实践中,我怀疑 = 实际上会的工作很好,但也许不能。

我谨建议,应绝对相信,你的二进制编码是饼干兼容,然后基本进制编码是最安全(例如 在java).

编辑: 作为@保罗有益的指出,有一个 修改版本的基64 这就是"网址的安全"(而且,我假设,"cookie安全").用一种修改版的标准算法的,而冲淡它的魅力、心你。

编辑:@shoosh指出, = 只是用来表示结束base64string,所以你可以剪的 =, ,设置cookie,然后重新装上 = 再次当你需要解码。

其他提示

Base64胜利,因为它是如此的共同点就是,我不必担心滚是我自己编/解码器。我还没有遇到任何的应用中,我一直担心节省的带宽或文件空间中的二进制编码数据。

曾几何时,有UTF-7.它是正式废弃的,但它仍然可以作为一个王牌(ASCII兼容的编码)。现在没有 IDN.

Base64是事实上的标准。使用任何其他是自找麻烦。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top