2012-12-17 47 views
2

UTF-8如何cp-1251解碼在JavaScript UTF-8解碼CP1251在JavaScript

cp-1251是從數據饋送,從JS客戶端解碼這需要。

無法更改服務器端輸出,因爲它與第三方有關,並且由於某種原因,我不會使用任何服務器端編程將數據傳輸轉換爲另一個數據傳輸。

+0

可能重複:HTTP: //stackoverflow.com/questions/2674411/convert-iso-windows-charsets -to-UTF-8在JavaScript的 –

+0

很抱歉,但它沒有重複的,從我的問題是唯一的純JS,無代碼頁,沒有服務器端編程,數據饋送是從網絡插口,不使用XMLHttpRequest的 – user192344

+0

你可以很容易地從這個答案扭轉功能:http://stackoverflow.com/a/2711936/251311 – zerkms

回答

1

(假設由「UTF-8」你的意思是他們本地編碼的JS串...)

根據您的「CP-1251」的數據格式,並根據您所需要的瀏覽器支持,您可以選擇:

  • TextDecoder.decode() API(從一個類型數組解碼八位字節序列,像Uint8Array) - 如果你正在使用的網絡插座,你可以得到一個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