LoginSignup
3
1

More than 5 years have passed since last update.

【ᐛ】 JSでHTML10進コードをデコードする記事が見つからなかった

Last updated at Posted at 2018-07-30

まとめ

コピペ用1

data に文字化けが入っていて、data に結果が反映される


while(match = data.match(/&#(\d{2,5});/)) {
    data = data.replace(match[0], String.fromCharCode(match[1]));
}

コピペ用2

引数に文字化けをとり、結果が返される


function decodeSJIS(data) {
    if (typeof data !== "string" || data === "") return false;
    while(match = data.match(/&#(\d{2,5});/)) {
        data = data.replace(match[0], String.fromCharCode(match[1]));
    }
    return data;
}

経緯

phpを使ってサーバ上に入れたmp3(m4aもある)のID3v2タグ情報を取得してきたとき、
(いまだ原因は不明だが)本記事タイトルのようなHTML10進数コードがとびだしてきた。

いつも通りGoogleでググってみたがUTF8→ShiftJISのエンコードだったり、decodeURIだったり、10進数→16進数のjsサンプルしか出てこなかったので、うんともすんともだった。

どうやらHTML10進数コードというものがあるらしく、変換ツールまでは見つかったので、できるらしいことはわかった。
そして、がんばったらものの数分で実現した。

検索して出てこなかったので記事にまとめました。
まとめしかないまとめ。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1