gpt4 book ai didi

encoding - base64编码: input character

转载 作者:行者123 更新时间:2023-12-01 09:05:02 25 4
gpt4 key购买 nike

我正在尝试了解 base64 编码的输入要求。我非常尊敬的 Nicholas Zakas 在这里发表了一篇文章,他引用了一个规范,即如果输入包含任何代码高于 255 Zakas Article on base64 的字符,则应该抛出错误。

Before even attempting to base64 encode a string, you should check to see if the string contains only ASCII characters. Since base64 encoding requires eight bits per input character, any character with a code higher than 255 cannot be accurately represented. The specification indicates that an error should be thrown in this case:

if (/([^\u0000-\u00ff])/.test(text)){
throw new Error("Can't base64 encode non-ASCII characters.");
}

他在文章的另一个单独部分提供了指向 RFC 3548 的链接但我没有看到任何输入要求,除了:

Implementations MUST reject the encoding if it contains charactersoutside the base alphabet when interpreting base encoded data, unlessthe specification referring to this document explicitly statesotherwise.

不确定“基本字母表”是什么意思,但也许这就是 Zakas 所指的。但是通过说他们必须拒绝编码,这似乎暗示这是已经被编码的东西而不是输入(当然,如果输入无效,它也会出现在编码中,所以也许这一点没有实际意义)。

对标准是什么感到有点困惑。

最佳答案

从根本上说,谈论“字符串的 base64 编码”是错误的,其中“字符串”是指文本

Base64 编码应用于二进制 数据(字节序列,或者八位字节,如果你想更挑剔的话),结果是文本。输出中的每个字符都是可打印的 ASCII 文本。 base64 的全部意义在于提供一种将任意二进制数据转换为文本格式的安全方法,该格式可以可靠地嵌入其他文本、传输等。ASCII 与几乎所有字符集兼容,因此您不太可能无法将 ASCII 文本编码为其他内容的一部分。

当有人谈论“base64 编码字符串”时,他们实际上是在谈论使用某些现有编码(例如 UTF-8)将文本编码为二进制,然后对结果应用 base64 编码。 解码时,您需要将 base64 解码回二进制,然后使用原始编码解码该二进制数据,以获得原始文本。

关于encoding - base64编码: input character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com