EUC-JP の PukiWikiサイトを UTF-8 に変換するツール pw_convert_eucjp_utf8 です。
ツール動作の妥当性確認のため、事例を集めています。ツールを利用した方は、このページに「変換に成功した」「失敗した/うまくいかなかった」等のコメントをお願いします。
ダウンロード†
pw_convert_eucjp_utf8_2.zip
注意点†
- 必ず、事前にバックアップを取得しておいてください。変換に失敗やファイルの破損・紛失が起きる可能性があります。
- <変換元PukiWikiディレクトリ> と <出力先ディレクトリ> は必ず異なるディレクトリをしてしてください。
- 変換後は十分な動作確認を行ってから利用を行ってください。
- 期待しない動作が発生した場合はこのページにコメントをお寄せください。
使い方†
ターミナル (Windowsではコマンドプロンプト) から実行するツールです。
(Webブラウザから利用するツールではありません。)
(1) ファイル名の長さチェック
php -r "include('pw_convert_eucjp_utf8.php'); convert_eucjp_to_utf8('<変換元PukiWikiディレクトリ>', '<出力先ディレクトリ>');"
実行例:
$ php -r "include('pw_convert_eucjp_utf8.php'); convert_eucjp_to_utf8('../pukiwiki_dir', '../converted_utf8');"
DETECTED: 20605 files to convert.
PASS - file name length check.
Please execute convert with '$filename_check_only=false'.
(2) 変換の実行
php -r "include('pw_convert_eucjp_utf8.php'); convert_eucjp_to_utf8('<変換元PukiWikiディレクトリ>', '<出力先ディレクトリ>', false);"
日本語のページ名をEUC-JPからUTF-8に変換すると、内部ファイル名の長さが1.5倍になります。
このツールではUTF-8でのファイル名がシステムの制限を超えないことのチェックを行います。
- ページ名長さがUTF-8での上限115bytes (すべて日本語文字の場合39文字まで)
- 添付ファイルの内部ファイルの長さ240bytes
この制限にかかって変換できない場合、あらかじめ(変換前のEUC-JPの状態で)ページのリネームや添付ファイルのリネームで、ファイル名を短くする対応を行ってください。
EUC-JPのURLをUTF-8のURLにリダイレクトする†
EUC-JPからUTF-8に変換すると、日本語を含むページのURLが変わります。
BugTrack/2195 UTF-8に移行したサイトに、移行前のページ名(URL)に対するアクセスがあった場合のケア
に、PukiWiki 1.5.4 での対処法の記載があります。
例:
https://pukiwiki.osdn.jp/dev/?%B3%AB%C8%AF%C6%FC%B5%AD (EUC-JP時代のURL) にアクセスすると、
https://pukiwiki.osdn.jp/dev/?%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98 にリダイレクトされます。(PukiWiki-devサイトでこの仕組みを導入済み)
- ファイルが見つかりません -- dex
- すみません。期待通りに動いていなくていったん公開を止めました。しばらくお待ちください -- umorigu
- version 2として再公開しました。 -- umorigu
- [実績1] PukiWiki 1.4.7_notb, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.5.4 の各EUC-JP版をこのスクリプトでそれぞれUTF-8版に変えることができます -- umorigu
- [実績2] このサイトPukiWiki-devの2015年当時のEUC-JP版のアーカイブをこのツールでUTF-8に変換することができます -- umorigu
- 昔、【他のツール】でEUC-JP→UTF-8に変換失敗した事例として、環境依存文字(①➀Ⅱ~∼~)などの考慮漏れがありました。念のため確認事項の1つとして情報提供しておきます。 -- rondo
- 情報ありがとうございます。pw_convert_eucjp_utf8 のツールは CP51932→UTF-8 の変換をしているので、いわゆるWindowsの機種依存文字に対応しています -- umorigu
- お礼とご報告:スクリプト大変助かります.ありがとうございます.(1)非常に小規模な個人利用pukiwikiサイトでは問題なくチェック→変換できました.EUC版では動かなかった検索機能が使えるようにもなりました.(2)34700超のファイルがあるもう一つのpukiwikiサイトでは,チェックの段階でファイル名が長くなるものが検出されてエラーとして表示されました.対処はこれから考えます. -- mouri
- 続・ご報告:上記(2)も,attachの名前変更を手作業でできたので問題なく行けました.検索機能が使えるようになるのが大変うれしい! -- mouri
- レポートありがとうございます。34700というとかなりページ数多いですね。検索機能は official:TextSearch ですね。ページ数が多いとかなり便利になっています。ファイル名長さは自分でもハマったところなので期待通りに動いていてよかったです -- umorigu
- 2003年より運用してきたEUC-JPのコンテンツを問題なくUTF-8に変換できました。使用バージョンはPukiWiki-1.5.4です。 → fuguita.org
UTF-8に変換したことによりFaceBookやSlackに張ったリンクから正常に飛べるようになりました。
このサイトは海外からの閲覧者が多いので、日本語のドキュメントを参照してもらうためにGoogle TranslateへのURL貼り付けが正常に動作するようになったのは非常に助かります。
ありがとうございました! -- kaw