使用非 ASCII 字符串输入的 base64.encode 可能产生意想不到的输出
作者: xzyingxiashubro创建于 2025年6月6日更新于 2026年9月13日
标签bug
**问题**:base64.js 中的 base64.encode 函数在输入为字符串类型时,无法正确编码包含非 ASCII 字符的字符串。它直接使用 input.charCodeAt() 的值,这些值是 UTF-16 码单位,并在用于 8 位字节的位运算中使用。这导致了 _keyStr 的越界索引以及不正确的 Base64 输出。
内容来源: Stuk/jszip