NetscapeCommunicator4.75のブックマーク文字化けについて 竜宝 rev.1 Oct 17 2000 rev.0 Oct 08 2000 ---------------------------------------------------------------------- 対象バージョン:Netscape Communicator 4.75 日本語版 対象OS   :Windows 9x/NT ---------------------------------------------------------------------- 無断リンク可・無断転載可・無断引用可・無断再配布可です。 オリジナルは http://www.geocities.co.jp/SiliconValley-Oakland/1428/475BM.TXT にあります。 無保証ですので試す場合は自己責任でお願いします。 誤りなどはメールで連絡下さるとありがたいです。 ---------------------------------------------------------------------- なかなか4.75のブックマーク文字化け対策版出ませんね。 以下は文字化けの内容と、文字化けを避けつつ4.75を使用するための情報です。 1.文字化けの内容 bookmark.htmの文字化けはNetscapeCommunicator4.75(以下NCと略す)の使用中に 発生するのではなく、NC終了時にbookmark.htmを書き換える際に発生しています。 NC起動中にブックマークを全く参照しない場合にはbookmark.htmの書き換えは起こりません。 NC起動中にブックマークからどこかを表示したり、ブックマークを変更したりすると、 NCは終了時にbookmark.htmを上書きします。 ブックマークを変更していないつもりなのに参照しただけで上書きされてしまうのは、 bookmark.htmには最終訪問日時も記録されているためです。 具体的にはbookmark.htmは下記の2段階で変化します。 (1) NCを起動し、ブックマークを参照し、終了。   テキストエディタでbookmark.htmを開くと     技術 → ‹Z術   といった文字化けが発生している事がわかります。 (2) もう一度NCを起動し、ブックマークを参照し、終了。   テキストエディタでbookmark.htmを開くと     ‹Z術 → ‹Z術   と更に変化している事がわかります。 文字化けした部分を見るとデータは欠落していないことがわかります。 例えば 技 と言う文字は10進で1バイト目が139、2バイト目が90です。 1バイト目の139が化けたので90が残されてZとなったわけです。 2.文字化けしたブックマークの修復 文字化けには規則性があり、データは欠落していないようなので、 プログラムで修復できます。新し目のPerl5がインストールされている場合、 perl -pe "s/&(?:amp;)?#(\d{2,3});/pack('C',$1)/eg" 化けてる.htm > 化けてない.htm といった方法で化けてないブックマークを得られます。 JPerlではなくオリジナル(英語版)のPerlを使用します。 私は若干古いActivePerl build 522を使用していますが、最新のbuild 618でも構いません。 http://www.activestate.com/ActivePerl/ 3.文字化けを回避して4.75を使用 文字化けしないように4.73を使用するという手もあるのですが、それでは4.74でFixされた JPEG表示のセキュリティホールが回避できません。 http://www.st.ryukoku.ac.jp/~kjm/security/memo/2000/08.html#20000801_netscape 私は文字化けを回避して4.75を使用するために前述のPerlを使用しています。 例として ・perl.exeの場所は C:\User\bin ・netscape.exeの場所は C:\Program Files\Netscape\Communicator\Program ・Program FilesのMS-DOSファイル名は PROGRA~1 ・ユーザープロファイル名は aaa ・ユーザーフォルダは C:\Program Files\Netscape\Users\bbb として説明します。 (1) perl.exeのショートカットを作成。 (2) ショートカットのプロパティを開く。 (3) 作業フォルダにユーザーフォルダを設定。 "C:\Program Files\Netscape\Users\bbb" (4) リンク先を下記に設定。(長いけど1行です) C:\User\bin\perl.exe -i.wrk -pe "s/&(?:amp;)?#(\d{2,3});/pack('C',$1)/eg; END {exec('C:\Progra~1\Netscape\Communicator\Program\netscape.exe','-P\"aaa\"')}" bookmark.htm (5) 実行時の大きさを最小化に変更。 (6) ショートカットのアイコンをNCの物に変更 ^-^; このショートカットをダブルクリックするとbookmark.htmをbookmark.htm.wrkにrenameし、 文字化けを修復したbookmark.htmを生成し、netscape.exeを起動してくれます。 複数のプロファイルを使用している場合は、プロファイル毎にショートカットを作るか 全てのプロファイルのブックマークを修復するスクリプトファイルを作ります。 4.その他の方法・情報 他にも文字化けを回避する方法や文字化けしたブックマークを修復する方法があります。 Netscape非公式FAQ日本語版 http://member.nifty.ne.jp/georgei/ が参考になるでしょう。 以上