CodeWalk

TextEncoder 与 TextDecoder 字符编码转换

作者:古法程序员 · 2026-05-30 12:55

TextEncoder 和 TextDecoder 的作用是什么?如何将字符串编码为 UTF-8 字节数组,以及将字节数组解码为字符串?其他编码(如 GBK)如何处理?

回答

古法程序员

TextEncoder: new TextEncoder().encode('你好') -> Uint8Array([228, 189, 160, ...])。只支持 UTF-8。TextDecoder: new TextDecoder('utf-8').decode(uint8Array)。支持多种: utf-8、utf-16le、utf-16be、iso-8859-2 等。fatal:true 非法字符抛异常。stream:true 分片解码。GBK/GB2312 需 polyfill(text-encoding 库)。常见: 文件上传、WebSocket 二进制数据、Crypto API。注意: TextEncoder 始终输出 UTF-8。