将 ISO-8859-1 编码字节转换为 UTF-8



>我有一个二进制文件,其二进制文件如下所示: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));

最新更新