#author("2022-04-03T20:17:09+09:00","","")
#author("2022-04-04T00:02:17+09:00","","")
* EUC-JP→UTF-8変換ツールを提供する [#y775fa46]

- ページ: [[BugTrack]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: その他
- 投稿日: 2017-10-11 (水) 06:02:51
- バージョン: 1.5.1
- リリース予定バージョン: 1.5.4

** メッセージ [#h826f303]
EUC-JP設定で運用しているサイトを比較的容易にUTF-8に移行できるような変換ツールを提供したい。

[[EUC-JP to UTF-8]] としてツールを提供し始めました。

旧URLでアクセスされたときにUTF-8版の新URLにリダイレクトする対応を入れられること。

文字コードUTF-8版が推奨されているが、古くから運用されているPukiWikiはEUC-JPであることが多い。
データをEUC-JPからUTF-8に変換するスクリプトを用意する。


*** 機能 [#da513d40]

- EUC-JP → UTF-8 データ変換
-- EUC-JP 文字コードは CP51932 を使う (PHP5.2.1以降; Windowsで使われるEUC-JP)
- UTF-8変換したときにページ名が長すぎる場合の警告表示 (重要)
- EUC-JP → UTF-8 ページ名リダイレクト (オプション)
- UNIX (Linux) / Windows で動作するPHPスクリプトとする
- Web経由では実行できないようにする
- 各ファイルの更新日時を維持する

*** ビルドスクリプト release.sh のEUC-JP変換動作 [#g7b390fc]

- PHPでなくシェルスクリプトを使った変換
- PukiWikiルートディレクトリで find を実行。拡張子 .txt .php .lng .dat .ref に対して nkf でデータ変換
- pukiwiki_devel の bin/encls.php を使ったデータファイル名変換は現状はOFFになっている (配布ファイルに日本語ページ名がないため)
- init.php に対してはソースコード変更操作を行う


*** その他 [#k8726c19]

- 検証: PukiWiki devの過去のデータに適用してみる
- 信頼性検証: リリースパッケージ作成の変換にこのスクリプトを適用する

*** 参照 [#jcad89ba]

[[開発日記/2015-01-03]]

> UTF-8への移行促進のために、リリーススクリプトを元にした EUC-JP → UTF-8 変換の簡単なツールも提供します。

- [[BugTrack/2186]] UTF-8版関係のまとめ
- [[BugTrack/2195]] [UTF-8] UTF-8に移行したサイトに、移行前のページ名(URL)に対するアクセスがあった場合のケア
- [[PukiWiki/1.4/UTF-8化]] EUC-JPからUTF-8への移行
-- 少し記述が古い。1.4.3時代のもの
- [[official:WebTrack/98]] devサイトの文字コードをUTF-8に変換 (2015-03-15 変換実行)
- 既存変換情報: PukiWiki Plus! リポジトリに data2utf8.php.txt が含まれておりこれが変換に使われることが多いようだ


--------
- pukiwiki-dev に対して適用した自前変換スクリプトはWebから実行できるようにしたために1000行超えてしまい、複雑すぎるのでコンソール限定にして公開可能なものにしたいです。 (1リクエストの実行時間を30秒に抑える非同期処理を行うようにしたため必要以上に複雑になっています) -- [[umorigu]] &new{2021-11-24 (水) 23:46:15};
- PukiWiki 1.5.4 RC2 [[開発日記/2021-12-13]] は、変換ツールを使ってUTF-8→EUC-JP変換したものでリリースを行いました -- [[umorigu]] &new{2021-12-13 (月) 05:22:35};
- 変換ツール [[EUC-JP to UTF-8]] の提供を始めました -- [[umorigu]] &new{2022-04-04 (月) 00:02:17};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.106 sec.

SourceForge