在javascript中将cp1251解码为UTF-8

时间:2012-12-17 01:42:30

标签: javascript cp1251

如何在javascript中将cp-1251解码为UTF-8

cp-1251来自数据源,需要从js客户端进行解码。

无法更改服务器端输出,因为它与第三方有关,并且由于某种原因,我不会使用任何服务器端编程将数据源转换为另一个数据源。

1 个答案:

答案 0 :(得分:1)

(假设通过“UTF-8”表示JS字符串采用其原生编码...)

根据您的'cp-1251'数据的格式而定,具体取决于您需要支持的浏览器,您可以选择:

  • TextDecoder.decode() API(解码来自类型数组的八位字节序列,如Uint8Array) - 如果您使用的是Web套接字,则可以从中获取ArrayBuffer进行解码。
  • https://github.com/mathiasbynens/windows-1251对其称为“字节字符串”的内容进行操作(JS String\u00XY等字符组成,其中0xXY是编码字节。
  • 自己构建解码表(example

请注意,在大多数情况下(虽然不是像websockets这样的低级别),在最终作为JS字符串结束之前,可能更容易以正确的编码读取数据(例如,您可以force XMLHttpRequest to use a certain encoding even if the server misreports the encoding )。