晴歩雨描

晴れた日は外に出て歩き、雨の日は部屋で絵を描く

JavaScript)EUC-JPエンコード→UTF-8エンコード変換。

はてなブログでは、文章中の特定のキーワードに勝手にアンダーラインが引かれリンクになる。

無料版では標準的にはこれを消せない。

はてなブログからエクスポートするファイルにも、そのキーワードリンクはそのまま残っている。

≪サンプル「京都府立植物園」≫

<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%FE%C5%D4%C9%DC%CE%A9%BF%A2%CA%AA%B1%E0">京都府立植物園</a>

キーワードがURIエンコードされているのだが、これが「EUC-JP」ベース。

このエンコード文字列をそのままWikipediaに渡すとエラーになる。Wikipediaエンコードは「UTF-8」ベースのため。

≪サンプル「京都府立植物園」≫

https://ja.wikipedia.org/wiki/%E4%BA%AC%E9%83%BD%E5%BA%9C%E7%AB%8B%E6%A4%8D%E7%89%A9%E5%9C%92

JavaScriptには「UTF-8」のURIエンコード/デコードをする関数は標準にある。

  • encodeURI()
  • decodeURI()

EUC-JP」のURIエンコード/デコードはない。

探してみると、「Escape Codec Library: ecl.js」というのが見つかった。

これを使えば、EUC-JPエンコード文字列をUTF-8エンコードに変換できる。

UnescapeEUCJP()」で、EUC-JPエンコードをデコードして、encodeURI()でUTF-8エンコードする。

<script>
var eucEnc = "%B5%FE%C5%D4%C9%DC%CE%A9%BF%A2%CA%AA%B1%E0";
var utf8 = UnescapeEUCJP(eucEnc);
var utf8Enc = encodeURI(utf8);
</script>