HTMLファイルを取得してUNICODEへ変換

[戻る]
Tanioka 2006/01/12(木) 13:34:33
こんにちは。Tanioka と申します。

やりたいことはインターネットからHTMLファイルを取得してその文字列を
wchar_t の文字列(UNICODE)に変換してメモリ上に展開することです。
しかし取得したHTMLファイルの文字コードが何か分からないので文字コード
の変換ができなくて困っています。HTMLファイルの文字コードを簡単に
判定する方法はないでしょうか?

HTMLの取得は MFC の CHttpConnection を使っています。また文字コードの
変換は libapriconv を使っています。IE7でHTMLを保存すると charset=xxx
のような文字列が含まれていましたが、CHttpConnection で読み込むとこの
ような文字列は含まれませんでした。

以上、よろしくお願いします。

PATIO 2006/01/12(木) 13:59:10
CHttpFile::QueryInfoにHTTP_QUERY_CONTENT_TYPEを指定すれば、
該当部分を含む物がえられると思いますけれど、
この部分に必ずcharsetの指定があるとは限りませんし、
この指定が無いようなホームページも結構ありますから
何処まで対応したいのかをきちんと決めないと難しいと思います。
少なくともcharsetの指定が無い場合に変換を諦めてしまうのか、
内部的に文字コードをスキャンして自動判定を行うのかを
決めないとだめでしょう。
ただ、文字コードの自動判定は結構面倒ですし、誤判定もありえる話なので
charsetを指定していないようなホームページを相手にする必要が無いのであれば、
あっさり諦めるのも手だと思います。

Tanioka 2006/01/12(木) 16:07:59
[[解決]]
PATIOさん、ありがとうございました。
問題は解決しました。charset がない場合はとりあえず ascii を
前提に変換するようにします。

古いスレッドには追加発言できません。