delegated を用いた charset="Shift_JIS" 対策

黒木 玄

更新:1999年3月3日 (作成:1998年5月3日)

0. Introduction

Netscape Navigator 2.x などの、

Content-Type: text/html; charset=Shift_JIS

もしくは

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">

を指定されると文字化けして読めないブラウザーを使っている人にとって、有用な対策があるので説明しましょう。

1. delegated

delegated を使えるようにする。 ETL DeleGate Home Page で delegated のソースおよび日本語ドキュメントが手に入ります。(DeleGate のマニュアルの邦訳があるのでそちらも参照せよ。) delegated は自力で使えるようにしてください。

2. CFI

CFI (Common Filter Interface) の機能の使い方を確認する。さらに、Header/Filter の使用例も参照しておくこと。有名な osaka filter を使った例が http://www.power.co.jp/tm/tanaka/unix.html にあり、非常に参考になります。

3. htmlfilt

嫌いなタグを削るための script を用意する。

例えば、/usr/local/lib/delegate/htmlfilt として以下のようなスクリプトを用意する。

#!/usr/local/bin/perl
undef $/;
$_ = <>
$* = 1;
s/<meta[ \n\r][^>]*charset[^>]*>//ig;
print;

4. ftocl.cfi

cfi script を用意する。

例えば、/usr/local/lib/delegate/ftocl.cfi として以下のようなスクリプトを用意する。

#!cfi
#
# ftocl.cfi
#
Header/Filter: sed '/^Content-[Tt]ype: text/s/;.*$//'
++
Content-Type: text/html
Filter: /usr/local/lib/delegate/htmlfilt
--

5. Start delegated

delegated を次のように起動する。

delegated -P8080 ADMIN='your_email_address' FTOCL='/usr/local/lib/delegate/ftocl.cfi' SERVER='http://-/-/' PERMIT='*:*:your_hosts_or_domain'

ここで、 your_email_address には自分の E-mail address を書き、 your_hosts_or_domain には例えば自分の計算機の IP address を書き込んで下さい。例えば、私の場合なら、

delegated -P8080 ADMIN='kuroki@math.tohoku.ac.jp' FTOCL='/usr/local/lib/delegate/ftocl.cfi' SERVER='http://-/-/' PERMIT='*:*:130.34.108.*,*.math.tohoku.ac.jp'

6. Proxy Configuration

proxy として、上で起動した delegated を使うように設定する。

例えば、Netscape Navigator 2.x ならば、

Options → Network Preferences → Proxies → Manual Proxy Configuration

と順番にクリックし、さらに、View ... を押して、

HTTP Proxy: delegate-host.domain.jp    Port: 8080

と設定します。ここで、delegate-host.domain.jp は delegated を走らせているホストの名前です。あとは OK, OK とクリックして準備完了です。

注意: history を Expire Now し、cache を全てクリアしてからでないと、META タグを削除しても、文字化けのままになります。試験は history と cache を全てリセットしてから行ないましょう。

References.


黒木 玄 <kuroki@math.tohoku.ac.jp>