トップページ>>>「いろいろ」目次

iconvその1(ブックマーク変換Konqueror→Netscape7)

初版作成:2002/10/25

目次

  1. 前書き
  2. 本題
  3. 後書き或いは感想

前書き


 先日Linux版のNetscape7が出ていました。バイト先ですでに7pr1を試用していましたのでその安定性や、使い心地の良さには信頼があったので入れてみました。
 で、それまではKDE付属のKonqueror(以下Konq)を使っていたのですが、ブックマークをKonqからネスケ用に変換してみようと思い立ちました。
 ところが、Konqのブックマークエディタのエキスポート機能を使ったは良いがうまくいかずの七転八苦・・・とまでは言いませんが、ちこっとめんどくさかったし。Mozillaとの相性もあるので、今後のためにHP上にメモっときます。
目次に戻る

本題

 それほど長くもないんですが、内容がiconv辺りで区切れますので。ちこっとだけ目次をつくっときます。
  1. とりあえず素直にエキスポート
  2. Mozillaを既に一度起動していて、設定ファイルの優先順位。
  3. ネスケのブックマークの文字コード
  4. iconvの使い方
  5. ネスケのブックマークはチェックが厳しい

とりあえず素直にエキスポート
「本題」に戻る
 さて。とりあえずKonqと起動して、ブックマークの編集でブックマークエディタを起動しまして。「ファイル」メニューの「Netscapeへブックマークをエクスポート」を選択します。
 すると、$HOME/.netscape/bookmarks.htmlというのと、$HOME/.netscape/bookmarks.html.beforekdeという二つのファイルが生成されます。beforekdeというのが、大方の予想道理bookmarksのバックアップファイルです。Konqのブックマークエディタから行うことはこれくらいです。

Mozillaを既に一度起動していて、設定ファイルの優先順位。
「本題」に戻る
 それではネスケを起動しましょう・・・。どうです?読み込まれましたか?っていうか、正直な話もし読み込まれたとしても、口述の文字コードだのブックマークのヘッダ部分などのチェックがあってまともに表示されることはありません。
 従って。1.なんか何もブックマークとして表示されない。2.変化なし。相変わらずネスケのデフォルトのまま。の二通りになると思います。1.の人はここは読み飛ばしてください。
 2.ですが。これに該当する人はおそらく、既にMozillaを起動してしまっていて、.mozillaディレクトリが生成されてしまっている人たちだと思われます。
 TLXW8だけかもしれませんが、どうもNetscape7 for Linuxは、.mozillaディレクトリがあればそちらの方を設定ディレクトリとして扱っているみたいです。そのため.netscape/ディレクトリは無視されちゃうみたい。
 で、Mozillaのブックマークは$HOME/.mozilla/default/(何かID値みたいな文字列).slt/bookmarks.htmlです。
 んで、念のためbookmarks.htmlをbookmarks.html.defaultとでも変更して、Konqのブックマークエディタが作った$HOME/.netscape/bookmarks.htmlをコピーします。んで、今度こそと思ってネスケを起動すると・・・。

ネスケのブックマークの文字コード
「本題」に戻る
 ・・・はい。なーんも、ブックマークに表示されないと思います。きっと「ブックマークの整理」だの、「ブックマークの管理」だの、編集用メニューしか表示されないことと思われます。この原因は何か?ちょっと、バックアップしておいたbookmarks.html.defaultをlessやcatで覗いてみましょう。
 まず、catで試してみます。見事にデフォルトのブックマーク.htmlは文字化けするはずです(TLXW8)。次。lessで試してみます。TLXW8なら間違いなくlessでも文字化けするはずです。
 catはEUC-JPのみ対応です。lessはTLXW8やTLXS7など、最近のディストリビューションならShift_JISも自動判別して適切に表示してくれます。となると。これでも文字化けするとなると。・・・そうです。UTF-8です。
 さてな。Shift_JIS←→euc-jpはNKFがあったけど。UTF-8に変換するコマンドなんてあったっけかな・・・。と思ってしばらく検索していたら。iconvという変換ライブラリがありました。基本的に共有ライブラリを提供しているみたいですが、おまけでiconvというそのものズバリの名前のコマンドもくっついてくるみたいです。最近のディストリビューションには入ってきているはずですし、ソースからもビルド可能です。それでは、これを使って変換すれば大丈夫なのか?
 とりあえずiconvの使い方を確認しておきましょう。

iconvの使い方
「本題」に戻る
 とりあえず、rpm -qa | grep iconvとか、iconvとか打ち込んでiconvが入っているか確認してください。最近のディストリビューションなら大丈夫だと思います。無い場合はネットで適当に検索して適当にビルドして適当にインストールしてください。
 んで。iconvコマンドの使い方ですが。
$ iconv [オプション] 変換元ファイル名
 となります。オプションには以下のものがあります。
-f, --from-code=NAME 変換元の文字コード
-t, --to-code=NAME 変換先の文字コード
-l, --list 使用できる文字コード一覧
-c 無効な文字を出力ファイルから除く
-o, --output=FILE 出力ファイル名
-s, --silent 警告メッセージを抑制
--verbose 処理情報の表示
-?, --help ヘルプガイドの表示
--usage 短い使い方メッセージ

 ちなみに、「man iconv」とやってもiconvライブラリの使い方しか表示されません。のでご注意を。
 まあ、要するにですね。例えばeuc-jpからUTF-8へ変換するには以下のコマンドを打ち込めばいいわけです。
$ iconv -f EUC-JP -t UTF-8 -o bookmarks.html.euc-jp bookmarks.html.utf-8
 ちなみにShift_JISから変換するには・・・
$ iconv -f SJIS -t UTF-8 -o bookmarks.html.sjis bookmarks.html.utf-8
 そりでは。以上のことを踏まえて。
 1.とりあえず、元のブックマークはbookmarks.html.default。
 2.Konqからエクスポートしてきたのをbookmarks.html.kde。
 3.$ iconv -f EUC-JP -t UTF-8 -o bookmarks.html.utf-8 bookmarks.html.kde
 4.lessとかcatとかで、ちゃんとUTF-8になってそうなのをチェックした後、$ copy bookmarks.html.utf-8 bookmarks.htmlでbookmarksファイルを上書き。
 さて。ネスケを起動してみましょう。やっぱ、それでもNGだと思われます。

ネスケのブックマークはチェックが厳しい
「本題」に戻る
 なーんででしょう?何度かbookmarks.htmlをデフォルトとかと取っ替えひっかえしてみた結果、どー考えてもネスケはコメント部分、或いはその他の部分までチェックしているっぽい。
 ネスケのデフォルトのbookmarks.htmlの冒頭はこんな感じです。
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>

<DL><p>
    <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="NC:PersonalToolbarFolder">繝ヲ繝シ繧カ險ュ螳壹ヤ繝シ繝ォ
繝舌シ 繝輔か繝ォ繝</H3>
    <DL><p>
 lessで見てるので、日本語の部分が文字化けてます。UTF-8だから。んで、Konqのエクスポートしてくれたファイルはどうなっているのかというと。
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- このファイルはKonquerorによって生成されました -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUCJP">
<TITLE>ブックマーク</TITLE>
<H1>ブックマーク</H1>
<DL><p>
<DT><A HREF="http://www.google.co.jp">Google</A>
<DT><H3 FOLDED >TLXW8 Manual</H3>
 みたいな感じです。Konqの方はまだEUC-JPですので文字化けしてません。
 最初はTITLEタグが日本語だからいけないのかな?と思ってNetscape7デフォルトの"Bookmarks"に書き換えてみても、それでも駄目。なんか、ネスケが起動してブックマークが読み込まれるとき、読み込みエラーですっからかんのブックマークとして上書きされているっぽいし。
 ショーがないのでviやらEmacsやらKateやら使ってNetscape7デフォルトの冒頭部分、DOCTYPEからH1のBookmarksまでに入れ替えてようやくちゃんと読み込んでくれました。
 というわけで、以上で変換作業完了。

目次に戻る

後書き或いは感想

 ふー・・・。何か、最近UTF-8がはやりになりつつあるようで。NKFが無力になる日も近いと思うと、悲しいものがあります。また、euc-jpやShift_JISからUTF-8へは特に警告もなく変換できたのですが、UTF-8からeuc-jp,Shift_JISへはいくつか無効文字の警告が出てしまいました。今後の発展と、NKFの改良に期待をします。
 また、Netscape7のブックマークに関しては冒頭部分までチェックしているのかと思うと「やりすぎだろ・・・」とか思ってしまいます。独自タグとは言え、文法はHTMLですからユーザーが編集できる余地が残されていても良いと思うんだけどな・・・。そうじゃないとブラウザ間でのブックマークの移転が難しくなるし。
 まあ、最近は特にデザインに凝っていないページに関してはKonquerorで十分。どうしてもデザイン通りに見たいページはNetscapeやIEを使うようにしていますので。まあ、いいかな、と。

目次に戻る

トップページ>>>「いろいろ」目次