mirror of
https://github.com/rommapp/romm.git
synced 2026-06-27 22:35:57 +00:00
atob() decodes base64 to a JS string, which r.return() then re-encodes as UTF-8. For filenames with non-ASCII characters (e.g. Pokémon), bytes above 0x7F get double-encoded — serving different content than what the backend computed the CRC32 over, causing mod_zip to report CRC failure on the .m3u file. Buffer.from(value, 'base64') decodes directly to a byte array and r.return() sends it verbatim, matching the CRC exactly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>