Encoding 替换Base64-有哪些限制?

Encoding 替换Base64-有哪些限制?,encoding,base64,Encoding,Base64,由于HTTP和HTTPs已经存在,因此无需使用8位干净编码系统(例如)。我们可以用8位编码 有继承限制吗?也就是说,8位或256位排列可以代表什么 我注意到Unicode字节(1字节表示)只能表示公元前128位的排列。MSB必须为0,以表示必须使用1字节表示。所以这是不可能的 创建一个将所有8位专门用于在8位干净系统中传输数据的系统有哪些限制 唯一的要求是数据必须使用256个符号进行可视表示。HTTP(或任何协议/系统)8位干净并不意味着可以在协议中的任何位置简单地使用任何8位值。这意味着只有在

由于HTTP和HTTPs已经存在,因此无需使用8位干净编码系统(例如)。我们可以用8位编码

有继承限制吗?也就是说,8位或256位排列可以代表什么

我注意到Unicode字节(1字节表示)只能表示公元前128位的排列。MSB必须为0,以表示必须使用1字节表示。所以这是不可能的

创建一个将所有8位专门用于在8位干净系统中传输数据的系统有哪些限制

唯一的要求是数据必须使用256个符号进行可视表示。

HTTP(或任何协议/系统)8位干净并不意味着可以在协议中的任何位置简单地使用任何8位值。这意味着只有在适当的情况下,协议或系统才能处理8位编码


例如,HTTP使用回车+换行符(十六进制值
0D0A
)来分隔消息头字段和消息体,因此不能在消息头的任何位置同时使用这些值。此外,报头和正文可能基于其中包含的数据类型对其字符编码有限制。如果HTTP内容类型设置为
text/html;charset=utf-8
,正文中的字符类似于
,我不确定HTTP使用的这些特殊值是否以任何方式保留。例如,0D0A也是Uicode中的此符号。能否提供HTTP使用的特殊字符的引用?您不建议不能通过HTTP使用此Unicode字符吗?我提议的方法也是如此。谢谢。如果将内容类型标头的字符集设置为Unicode,则可以在HTTP正文中使用Unicode,但Unicode值在HTTP标头中无效。参见第2.2节关于CRLF的内容。另外,如果您想在HTTP头中包含外部字符,请参阅如何对这些字符进行编码。此问题并非针对HTTP头。进一步研究,我将使用不使用“内容类型”的Ajax GET请求。我的猜测是因为它是一个没有任何限制的纯比特流。任何特殊字符在发送之前和接收之后都会被转义;是的,你可以使用你自己在HTTP中发明的一种特殊编码,但你不能只使用你想要的任何东西。您的特殊编码必须符合
内容类型
标题中指定的任何内容类型和字符集。如果字符集是UTF-8,则整个正文必须符合UTF-8或其子集(如ASCII)。这就是为什么Base64可以在HTML文档中工作(它将任意二进制文件转换为一组非保留ASCII字符),而完整的8位编码方案则不能(因为并非所有8位值在HTML中都有效)。如果您只是通过GET返回二进制数据,则内容类型将是
应用程序/octet流
,在这种情况下,不需要特殊编码,因为此内容类型允许HTTP正文中包含原始二进制文件。