民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS Chrome の DomParser にSJISのHTMLをパースさせてみた

<<   作成日時 : 2016/06/18 09:54  

ブログ気持玉 0 / トラックバック 0 / コメント 0

HTMLをパースするのに、ブラウザのパーサーを使うのが一番安心感があると思っていました。
Python のlxml.htmlなんかだと手も足も出ない汚いHTMLでも、ブラウザはビシッと表示してくれるので。

だったら、lxmlとか使わずに、ブラウザのDomParser使ってみたらどうよ、とか考えました。
ブラウザ側で

$.post('hogehoge.php', {url: 'http://www.example.com'}, function(data){
var parser = new DOMParser();
html = parser.parseFromString(data, "text/html");
...

なんてできないかなぁと思ったのです。

DOMツリーさえ手に入ればこっちのもんですし。

思っただけでなく、試しました。手元の Google Chrome バージョン 51.0.2704.84 m で。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>シフトジスのトップページ</title>


なんてデータを用意して。

で、結局、玉砕しました。

charset=Shift_JIS なんて全く無視され、innerHTMLなどを使って文字列を取得しても全部文字化けです。

javascriptである以上、入ってくるデータはutf-8でエンコードされていると決め打ちされてしまうような感じでした。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Chrome の DomParser にSJISのHTMLをパースさせてみた 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる