为什么JDK8的Base64使用ISO-8859-1?

Jin*_*won 6 base64 ascii iso-8859-1 character-encoding java-8

我正在为一些受限制的环境编写自己的BASE64编码器/解码器.

我发现Base64.Encoder#encodeString说它ISO-8859-1用于从那些编码的字节构造一个String.

我完全假设ISO-8859-1charset也涵盖了所有base64字母.

有没有可能的理由不使用US-ASCII

Jon*_*eet 9

我怀疑它更有效:从ISO-8859-1转换回文本只是将每个byte直接转换为a char,而对于ASCII,你需要检查它是否byte是有效的ASCII.当然,base64的结果总是相同的.

(这只是一个猜测,但是一个受过教育的人.如果你想验证它,你总是可以运行基准测试......)