0

さまざまなサービスからページにテキスト文字列を配信する WebSocket があります。これらの文字列の一部には、奇妙な文字が含まれています。

時々私は次のような文字列を受け取ります:

「%91引用されたもの%92もの」

と同様です。この特定のサービスは、windows-1252 (または CP1252) 文字セットで文字列を送信することがわかりました。

JavaScriptを使用して、すべての文字列をUTF-8にするか、16進文字を変換するのに最適な(そして最速の)方法はどれですか?

4

4 に答える 4

1

パーセントでエンコードされた Windows-1252文字があるようです。

replaceWindows-1252 コードから Unicode 文字へのマップを作成する場合、それらを に置き換えることができます。

var win1252toUnicode = {
    ...
    91:"‘",
    92:"’",
    ...
};
var encoded = "stuff stuff %91quoted stuff%92 stuff";
var decoded = encoded.replace(/%([0-9abcdef]{2})/ig, function(match, code) {
    return win1252toUnicode[code];
})

これにより、次のようになります。

"stuff stuff ‘quoted stuff’ stuff"
于 2015-10-06T16:06:58.720 に答える
0

以下はキャラクターマップです。

http://www.obkb.com/dcljr/charstxt.html

このコードを使用して、コード内の文字を置き換えます。

var str = "stuff stuff %91quoted stuff%92 stuff";
var res = str.replace("%91", "‘");

また、複数の置換については、この質問を確認してください。

複数の文字列を一度に置き換える

于 2015-10-06T15:50:35.723 に答える