次へ: 9 最後に
上へ: AWK によるシェル作業
前へ: 7 全体のソースコード
(PDF ファイル: awkwww4.pdf)
8 MS-Windows ユーザの場合
ここまで書いてきて、
MS-Windows の場合はいくつか問題があることがわかりました。
- Yahoo! の HTML ファイルの漢字コードは基本的に EUC-JP であるようだが、
それをそのコードのまま MS-Windows 上の Shift_JIS の AWK スクリプトで処理すると問題が起こる
(スクリプト内部で漢字を出力する部分、
および [6] の日本語をパターンとする部分)
- HTML ファイルを Shift_JIS に変換してから処理する場合は、
[5], [6] のスクリプトは、
加工して作成する HTML ファイルの漢字コードが EUC-JP であるとして
出力している部分の修正が必要
- スクリプトで Shift_JIS の漢字パターンを使用する場合
([6] のスクリプト)、
日本語に対応している AWK を使用しないと
Shift_JIS 2 バイト目が `\'9である場合に問題が起こる可能性がある
以上のような問題を解決するために、MS-Windows では以下のような対処を取る
必要がありそうです。
- nkf のような漢字コード変換フィルタを利用してダウンロードした
ファイルを Shift_JIS に漢字コード変換する
これは、nkf をインストールして、今回のスクリプトの、以下の部分 (2 箇所)
cmd = sprintf("wget -O %s \"%s\"",fname,url)
を
cmd = sprintf("wget -O - \"%s\" | nkf --windows > %s",
url,fname)
のように変えれば可能です。
wget は出力ファイル名が -
の場合は標準出力にそれを流しますので、
このようにすれば nkf を通して Shift_JIS コードのファイルに変換されます。
MS-Windows 用の nkf は、現在 (2006 09/28) は以下で
ダウンロードできるようです。
http://www.vector.co.jp/soft/win95/util/se295331.html
- [5], [6] のスクリプトの putheader() の中で
printf " content=\"text/html; charset=EUC-JP\">\n"
としているところを
printf " content=\"text/html; charset=Shift_JIS\">\n"
に変える
- 今回のスクリプト内部で呼びだす AWK を、日本語対応 (マルチバイト対応)
化された Gnu Awk を使用する
マルチバイト対応の Gnu Awk の所在については、
[1] を参照してください。
とりあえず、以上のような対処によって動作させることが可能だと思います10。
次へ: 9 最後に
上へ: AWK によるシェル作業
前へ: 7 全体のソースコード
竹野茂治@新潟工科大学
2006年9月29日