We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Base64通常用于对二进制数据进行编码,即用字符串表示二进制数据。这样便于数据传输。
Base64(基于64个字符的)是许多类似编码方案的通用术语,这些方案通过对二进制数据进行数字处理并将其转换为base-64 表示来对二进制数据进行编码。Base64 术语源自特定的 MIME 内容传输编码。
组成 Base64 所需的64个字符的特定字符选择因实现而异。一般规则是选择一组 64 个字符:
这种组合使数据不太可能在通过电子邮件等系统传输时被修改,这些系统在传统上不是 8 位干净的。例如,MIME 的 Base64 实现对前62个值使用AZ、az 和0-9,对后两个值使用+和/。其他变体(源自Base64)共享此属性,但为最后两个值选择的符号可能不同;比如URL和文件名安全的“RFC 4648 / Base64URL”变体,它使用-和_(即换成URL字符集的字符)。
AZ
az
0-9
+
/
-
_
举例子:原数据是字符串Man 即字符串ManBase64编码后是TWFu。
Man
TWFu
const targetUrl = 'https://test.com?age=12'; const middleUrl = `https://test.com/direct?target=${base64(targetUrl)}`
如果直接使用encodeURIComponent在IOS里可能会decode,导致中间页无法正确提取target URL。
encodeURIComponent
Base64是一种字符串编码格式,Base64采用A-Za-z0-9+/这一共64个字符来编码原始字符(还有垫字符=)。一个字符本身是1个字节,也就是8位,而Base64编码后的一个字符只能表示能表示6位的信息。也就是原始字符串中3字节的信息编码会变成4字节的信息
A-Za-z0-9+/
=
根据RFC822规定,BASE64Encoder编码每76个字符,还需要加上一个回车换行 部分Base64编码的java库,OC等还按照这个标准实行,所以会有又换行符。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Base64
Base64通常用于对二进制数据进行编码,即用字符串表示二进制数据。这样便于数据传输。
基础
Base64(基于64个字符的)是许多类似编码方案的通用术语,这些方案通过对二进制数据进行数字处理并将其转换为base-64 表示来对二进制数据进行编码。Base64 术语源自特定的 MIME 内容传输编码。
64个字符
组成 Base64 所需的64个字符的特定字符选择因实现而异。一般规则是选择一组 64 个字符:
这种组合使数据不太可能在通过电子邮件等系统传输时被修改,这些系统在传统上不是 8 位干净的。例如,MIME 的 Base64 实现对前62个值使用
AZ
、az
和0-9
,对后两个值使用+
和/
。其他变体(源自Base64)共享此属性,但为最后两个值选择的符号可能不同;比如URL和文件名安全的“RFC 4648 / Base64URL”变体,它使用-
和_
(即换成URL字符集的字符)。实现原理
举例子:原数据是字符串
Man
即字符串
Man
Base64编码后是TWFu
。使用场景
可用于中间页面跳转目标页面:
如果直接使用
encodeURIComponent
在IOS里可能会decode,导致中间页无法正确提取target URL。Issues/Concern
Base64编码字节占用更多了
Base64是一种字符串编码格式,Base64采用
A-Za-z0-9+/
这一共64个字符来编码原始字符(还有垫字符=
)。一个字符本身是1个字节,也就是8位,而Base64编码后的一个字符只能表示能表示6位的信息。也就是原始字符串中3字节的信息编码会变成4字节的信息Base64和回车换行
根据RFC822规定,BASE64Encoder编码每76个字符,还需要加上一个回车换行 部分Base64编码的java库,OC等还按照这个标准实行,所以会有又换行符。
参考
The text was updated successfully, but these errors were encountered: