投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/3/3 19:56:39
> 文字化けしたうえ、全文が保存されないということでした。
どういう意味でしょう。全文が保存されず、一部のみが保存されるのでしょうか?
だとしたら、URLの読み込みに時間がかかってタイムアウトしてしまい、
文書の後半を取り込めなかったのかも。


> EUCと両用のプログラムにしたいと思っているのですが、
> どうしたら良いでしょうか? 

そもそもは、
>> これは、Web サイト側の不具合だと思います。
>>  サーバーからの応答ヘッダ:Content-Type: text/html; charset=Shift_JIS
>>  サーバーからの応答ボディ:Shift_JIS エンコードされた文字列
>>  HTML 中の META タグ:<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
>> ということで、HTML の記述が、実際の文字コードと一致していません。
に起因する問題であって、文字化けしないように「正しく作られたサイト」であれば、
得られたバイナリをそのまま無加工で保存するだけで良いはずです。


この場合、EUCのサイトは、EUCのHTMLファイルとして保存し、Shift_JIS ならば
Shift_JIS のファイルとして保存されることになります。


無加工で保存できないのは、「文字コードの指定が間違っているサイトを保存する場合」、
「文字コードの指定がなく、文字コードを機械的に判断できない場合」
「保存時に、別の文字コードに変換して保存したい場合」などであり、
その場合は、今回の説明に即した方法で、文字コードの変更処理や、metaタグの
修正などを施さねばならないでしょう。

今回の状況は、どの場合に相当しますか?



> 日本語部分のみ文字化けしてしまいます。
まずは、『なぜ文字化けしたのか』を解析し、そのメカニズムを理解するようにしてみてください。
文字化けの原因が分からなければ、問題を回避するコードを書くこともままならないでしょうから。