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

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

我正在为某些受限环境编写自己的 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/

相关文章:

java - 在 Linux 上读取 Windows 文本文件 --- MIME 问题?

图像 blob 到 base64

python - 如何仅过滤 Bash(linux)或 Python 文件中的可打印字符?

c - 仅打印字符串中的字母

c# - 获取字符串中所有字符的数值

r - 在 R 中从列表转换为 data.frame 时,utf-8 字符会丢失

javascript - 通过 charCodeAt 比较两个带有特殊字符的字符串

java - 如何解码使用 jid3lib-0.5.4 获取的 ID3V2 标签

java - 加密/解密(使用 AES)大文件并通过 HTTP 传输

Javascript:从自定义 API 将许多图像加载到 DOM 中,无需使用 base64-dataURLs