charset指定のないHTMLを扱う
NokogiriでHTMLを出力し直したら自動的にcharset指定が生えた
Nokogiri:HTML::Node#to_html でイケる。
- ただし、当然だけど Encoding が合ってないといけない
- Nokogiri の default は UTF-8
- 外から指定する方法もある File: README — Documentation for sparklemotion/nokogiri (master)
Chromeはextentionで対応
Chrome はバージョン 55 からエンコーディング関係のメニューが消え、自動判別もしなくなった。いやいや、自動判別が遅くなるのは分かるけど、メニューくらい残せよ、と思うけど消えちゃったものは消えちゃったのだ。
Web サーバから配信している場合はサーバが charset 指定を付加していれば解釈できるが、local で直接開いている場合や Web サーバが charset を付加してくれない場合は Chrome ではこうした HTML を開くと正しく解釈できずに文字化けしてしまう。
そういう時は extension で対応するようだ。
https://chrome.google.com/webstore/detail/set-character-encoding/bpojelgakakmcfmjfilgdlmhefphglae
Firefox
バージョン 63 現在、特に困らない。