>我有一个二进制文件,其二进制文件如下所示:8950 4e47 0d0a 1a0a 0000 000d 4948 4452。
我想使用 ISO-8859-1 将这些字节解码为字符串,例如,"50"是"P","4E"是"N",47 是"G"。
但是,我不能在JavaScript中做到这一点,因为解码方法"fromCharCode()"默认是Unicode。
我能想到的是先将二进制文件本身转换为 UTF-8。例如,ISO-8859-1中的"50"表示UTF-8中的相同值"P",因此"50"仍然是"50",但ISO-8859-1中的"89"不代表任何内容,我不知道如何选择UTF-8编码来替换它。
任何人都可以为此转换功能提供一些帮助吗?
TextDecoder
类。如果您的浏览器不支持它,您可以使用此 polyfill。
let bytes = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,
0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52]);
let decoder = new TextDecoder('iso-8859-1');
console.log(decoder.decode(bytes));