我正在为某些受限环境编写自己的 BASE64 编码器/解码器。
我发现 Base64.Encoder#encodeString说它使用ISO-8859-1
用于从这些编码字节构造一个字符串。
我完全假设 ISO-8859-1
字符集还涵盖所有 base64 字母。
是否有任何可能的理由不使用 US-ASCII
?
最佳答案
我怀疑它更有效:从 ISO-8859-1 转换回文本只是提升每个 byte
的问题。直接到 char
,而对于 ASCII,您需要检查 byte
是有效的 ASCII。当然,base64 的结果将始终相同。
(这只是一个猜测,但有根据。如果你想验证它,你总是可以运行基准测试......)
关于character-encoding - 为什么 JDK8 的 Base64 使用 ISO-8859-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29916494/