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

时间:2015-04-28 10:12:02

标签: character-encoding base64 ascii java-8 iso-8859-1

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

我发现Base64.Encoder#encodeString说它使用ISO-8859-1从这些编码的字节构造一个字符串。

我完全假设ISO-8859-1字符集也涵盖了所有base64字母表。

是否有任何理由不使用US-ASCII

1 个答案:

答案 0 :(得分:9)

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

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