3

JavaScriptでデコードcp-1251する方法は?UTF-8

これcp-1251は、jsクライアント側からデコードする必要があるデータフィードからのものです。

サーバー側の出力はサードパーティに関連しているため、変更する方法はありません。何らかの理由で、サーバー側のプログラミングを使用してデータフィードを別のデータフィードに変換することはありません。

4

1 に答える 1

2

(「UTF-8」とは、ネイティブエンコーディングのJS文字列を意味すると仮定します...)

「cp-1251」データの形式と、サポートする必要があるブラウザーに応じて、次のいずれかを選択できます。

  • TextDecoder.decode() API (型指定された配列から一連のオクテットをデコードしUint8Arrayます) - Web ソケットを使用している場合は、そこから ArrayBuffer を取得してデコードできます。
  • https://github.com/mathiasbynens/windows-1251は、「バイト文字列」(Stringのような文字で構成されるJS \u00XY、0xXY はエンコードされたバイトです) と呼ばれるもので動作します。
  • 自分でデコード テーブルを作成する ()

ほとんどの場合 (websockets ほど低レベルではありません)、最終的に JS 文字列になる前に正しいエンコーディングでデータを読み取る方が簡単な場合があることに注意してください (たとえば、XMLHttpRequest に特定のエンコーディングを使用するように強制することもできます)。サーバーがエンコーディングを誤って報告した場合)。

于 2017-01-03T20:26:20.197 に答える