A_single_file_wiki_wifky2.png

[tool] コンテンツUTF8変換スクリプト

1.4 までの EUC-JP で作成されたコンテンツを、 1.5 向けの UTF-8 データヘコンバートする Perl スクリプトです。

  • wifky のプラグインではなく、シェル上で利用するスクリプトです。
  • 利用する際は、 元コンテンツは全て間違いなく、全てバックアップしてください
    • 涙目の実話ですが、 開発者は利用中、ミスって過去1年分の「にっき」を失なってしまいました。
    • 当然ながら、再発防止のための安全処置は打ってありますが、 何事も絶対ということはありません。
    • コンテンツを失なっても、開発者は責任を負いかねますので、 _基本は自己責任でお願い致します

制限・注意

以下に書いてある内容が分からない場合、本スクリプトは利用すべきではありません。

  • 利用には Encode モジュールを持つ Perl 5.8 以降が必要です。
  • 日本語が含まれていたページは URL が変わってしまうので、 外部からのリンクが切れてしまいます。
  • 添付ファイルについては、日本語コードを変換すべきか、そうでないか、 ファイル名のパターンで見ています。
    • comment で始まるファイル名、拡張子 .txt のもの
      → 変換する
    • book で始まるファイル名、拡張子 .nst のもの
      → キャッシュファイルなので、コピーをしない(wifky自体に再生成させる)
    • その他
      → 変換せず、バイナリコピーする
  • このスクリプトは、パーミッションの調整は自動で行いますが、 ファイル所有者の変更まで出来ません。
    • そのため、suexec 環境でない場合は、自分で前後に chown -R する必要があります。
    • chown できるのは root だけですので、root権限のない ホスティングサービスで、suexec 環境でない場合(=sourceforge.jpなど)は、 利用すべきではありません。
  • 削除・復元プラグインで削除したコンテンツは変換対象外です。
  • 長い名前のページ名・添付ファイル名のコンテンツは コンバートできない場合があります。
    • 日本語一字を表現するのに EUC-JP では 2bytes だったのが、 UTF-8 では 3bytes 必要になるためです。 内部で利用しているファイル名ではそれが更に倍になるので、 255bytes以内というファイル名制限を持つ Windows では 「ファイル名の長さ+添付ファイル名の長さ ≦ 42文字(日本語)」 となってしまいます。 (実際は、さらにディレクトリ名なども差し引かれますので、 もっと少ないはず)
    • Windows で、長い名前のページを使っている場合は、 そのまま EUC-JP で運用した方が無難です。

一番、最後が結構深刻で「サーバ上で直接実施するのは危険だから、 まずはローカルの Windows へ rsync してテストする」といったことが 難しくなっています。

ダウンロード

利用方法

$ perl 14to15.pl EUC-JPのワークディレクトリ名

を実行すると、UTF-8のワークディレトリが作成され、 そこへコンテンツがコンバートされます。 (「14to15.pl index.dat」の場合、 「index.d」という新ワークディレクトリに格納される)

以下は、実行イメージです。 メッセージは ShiftJIS(正確には cp932) ですので、ご注意ください。

$ perl ./14to15.pl index.dat
[A] 2005.12.17
[A] 2006.07.28
[A] □ NYAOSで澤という漢字が入力できない
[A] □ coLinux を入れる
[B] CSS_black - sunset.jpg
[A] □ NYAOSで%BEGINLIBPATH%をSETで設定できない
[A] CSS quiet black
[A] CSS quiet black - referer.txt
[-] 積読リスト - bookinfo.4150116660
[A] CSS_char
[A] CSS_test
[A] CSS_char - referer.txt
[Plugin] ruby.pl
[A] test
[A] trackbacktest
[A] trackbacktest - trackback.txt
[A] (2004.01.02)
[B] test - 05-02-12_14-47夫婦杉.jpg
[A] スクリプト勉強会
[A] Footer
[A] (2004.01.11) テスト
[A] (2004.01.18) 携帯より更新してみる
[A] gawk で Wiki-Engine を書いてみた!
[B] gawk で Wiki-Engine を書いてみた! - index.awk
[A] (2004.01.01) ココログよりのコンバート
[A] (2004.01.01) ココログよりのコンバート - comment.0
    :(以下省略)
  • [A] は EUC-JP → UTF-8 変換
  • [B] は変換なしのバイナリコピー
  • [-] はキャッシュファイルのため、コピー見送り
  • [Plugin] はプラグインファイル(バイナリコピー)
  • [Config] は設定ファイル(変換ありコピー)
  • あとに続くテキストは、ページ名 - 添付ファイル名
    (添付ファイル名が無い時はページ本文のコンバート)

コンバートをかけた結果できるディレクトリ(wifky.d とか index.d)は、 wifky から直ちに認識されます。

もし、結果に問題があるなど、EUC-JP に戻したくなった場合、 UTF-8 版のディレクトリを別の名前にリネームすれば、 EUC-JP 版のディレクトリを再認識するようになります。

最後に

ご利用は計画的に…

|

Designed for @nifty.