上へ

Category: UTF-8

EUC-JPからUTF-8への移行

【注意】

UTF-8化はやりたい人だけがすることで、PukiWiki 1.4の動作に必要なことではありません。

また、UTF-8化することをおすすめしているわけではありません。むしろ、今後のバージョンアップやメンテナンス作業を考えれば、従来通りEUC-JPを推奨します。

UTF-8化した場合、phpファイルやskinファイルなどの編集はUTF-8対応のエディタで行なう必要があります。PukiWikiのバージョンアップ(差分のパッチ当てを含む)の際もphpファイル(差分ファイルを含む)をUTF-8にコンバートする必要があります。

UTF-8化が必要でない人、UTF-8を扱える環境にない人は、以下の操作は行なわないように。

【警告】

UTF-8化の作業は、必ずPukiWiki 1.4が動作している環境で行なってください。

PukiWiki 1.3系列の人は、あらかじめ、PukiWiki/1.4/1.3系からの移行に従い、PukiWiki 1.4にアップデートし、PukiWiki 1.4が動作することを確認しておいてください。

PukiWikiの各ディレクトリ、ファイルのパーミッションが正しく設定されているか、作業の前に確認しておいてください。

最新の情報については、UTF-8版関係のまとめ(BugTrack2/186) も確認してください


バックアップ

バックアップは非常に大切です。以下の作業を行う前に、*.phpやスキン、プラグイン、attach,backup,counter,diff,wikiディレクトリを含む全てのデータをバックアップしてください。(やり方はお任せします :) )

準備するもの

  • jcode_1.34.zipをダウンロード
  • ダウンロードしたjcode_1.34.zipを解凍し、中のファイルをpukiwikiのplugin/jcode_1.34ディレクトリにアップロード

手動で書き換える部分

  • init.php
    define('SOURCE_ENCODING','EUC-JP');
    define('SOURCE_ENCODING','UTF-8');
    に変更。
  • pukiwiki.skin.en.php
    <?php header('Content-Type: text/html; charset=iso-8859-1') ?>
    <?php echo '<?xml version="1.0" encoding="iso-8859-1"?>' ?>
    <?php header('Content-Type: text/html; charset=UTF-8') ?>
    <?php echo '<?xml version="1.0" encoding="UTF-8"?>' ?>
    に変更。
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1" />
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
    に変更。
  • pukiwiki.skin.ja.php
    <?php header('Content-Type: text/html; charset=EUC-JP') ?>
    <?php echo '<?xml version="1.0" encoding="EUC-JP"?>' ?>
    <?php header('Content-Type: text/html; charset=UTF-8') ?>
    <?php echo '<?xml version="1.0" encoding="UTF-8"?>' ?>
    に変更。
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=EUC-JP" />
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
    に変更。

ファイルのコンバート

  • PukiWiki/1.4/1.3系からの移行ページに添付されているfileconvertcode.inc.phpをpluginディレクトリにコピー
  • http://.../pukiwiki.php?plugin=convertcodeを実行
  • pluginディレクトリのconvertcode.inc.phpを削除
  • pluginディレクトリのjcode_1.34ディレクトリを削除

上記のものは、古いのでそのままでは現在の構成では問題があります。ご注意ください 2004-11-12 (金) 07:57:33時点

InterWikiNameの再編集

  • エンコード指定を変更する必要がある。
    • 無指定やpwやywになっているものは、相手側のコード(euc、utf8など)を指定

注意

  • UTF-8では日本語1文字が3バイトになるため、ページを階層化している場合、ファイル名が長くなり過ぎてコンバートできない場合があります。深い階層・長いページ名を使っている場合は要注意。--reimy 2003-03-06 (木) 18:26:55

Internationalization of UI(in case you are running internationalized wiki)

  • simple i18n of UI :) (We should use gettext or something like that in the long run, but for now..)
    --- pukiwiki.ini.php~   Mon Feb  7 22:22:40 2005
    +++ pukiwiki.ini.php    Mon Feb 28 12:57:39 2005
    @@ -37,7 +37,17 @@
     define('LANG', 'ja');
    
     // UI_LANG - Content Language for buttons, menus,  etc
    -define('UI_LANG', LANG); // 'en' for Internationalized wikisite
    +$UI_LANG = LANG; // Default UI language, 'en' for English
    +
    +$use_utf8 = 1;
    +if ($use_utf8) {
    +       preg_match('/^([^-,;]+)(-|,|;|$).*/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang);
    +       if (is_readable("$lang[1]_utf8.lng.php"))
    +               define('UI_LANG', "$lang[1]_utf8");
    +       else
    +               define('UI_LANG', $UI_LANG);
    +} else
    +       define('UI_LANG', $UI_LANG);
    
     /////////////////////////////////////////////////
     // Directory settings I (ended with '/', permission '777')
    it tries to find language file(e.g. ja_utf8.lng.php, ko_utf8.lng.php) according to user's browser setting and defines UI_LANG. -- xo 2005-02-28 (月) 13:46:48

コメント

最新の10件を表示しています。 コメントページを参照

  • んーぬー。BugTrack/246の関係でUTF-8化を考えるもCSV難民(というかCSV導入による書き換え作業漏れに右往左往)に拍車かけるかと思うとヘタレ冒険者になりそうだ...。おまけにUTF-8での作業環境に疑問符はあるし...。 -- たらこせる 2003-04-22 (火) 13:02:58
    • 今まで単語があたらなかったことをよしとすべきか...。ひとまず「名前」は手動削除か...。 -- たらこせる 2003-04-22 (火) 13:04:50
  • convertcode.inc.php が 現在のパッケージ の構成とあっていない様に思います。何もしていないパッケージでdir.txt が変換されたりしています。 -- merlin 2003-10-01 (水) 23:41:32
  • Fedora Core もUTF-8になってしまったし、今後の Linuxを考えると、Unicode化となるのでしょうから、これを推し進める必要があるのだろうと思っています。 -- upk 2003-11-08 (土) 01:50:07
  • 最新版のpukiwiki(1.4.3)でコンバートを行うと、convertcode.inc.phpとmbstring.phpでいくつかの関数が重複して定義されているためエラーが出ます。convertcode側の重複している関数を削除すると上手く変換できる、ようです。 -- 末座? 2004-06-09 (水) 23:25:11
  • lib/init.phpで、define('LANG', 'ja_utf8');して、UTF-8なja_utf8.lngとskin/pukiwiki.skin.ja_utf8.phpを別途用意する方法では問題が発生するでしょうか?(既存ページは駄目ですが...) -- サハラ? 2004-10-13 (水) 22:31:36
    • 現段階ではencode_hintなど「日本語がハードコードされている」部分がありますので、ファイルの文字コードを全てutf-8に変換したPukiWikiを用意されるのが確実です。 -- henoheno 2004-10-13 (水) 23:02:59
    • 各ページのデータファイルのファイル名はエンコードされてますので、ファイル名も変換しないとだめです。配布パッケージで動作上問題となるのは、ヘルプ のページだけですけど--merlin 2004-10-14 (木) 08:45:00
    • ありがとうごさいます。やってみたところ、utf-8なページ(ファイル名も)編集できましたが、単語検索の入力ボックスが表示されませんでした。pukiwiki.ini.phpで$encode_hint="ぷ";としてplugin.phpの漢字埋込を回避したら解決できました。 -- サハラ? 2004-10-14 (木) 10:32:52
  • 1.4.4_php5 + jcode1.35a で試してみました。 ?plugin=convertcodeを実行の際にUTF-8エンコードでページが表示されていますが、そのままだと管理パスを入れてもPOSTがうまく渡らないようです。 EUC表示させて(当然文字化けますが)からPOSTすると出来ました。 (IE 6.0@WindowsXPなのでそのせいかしら…) -- mitty? 2004-11-12 (金) 05:21:37
    • lib/plugin.php をUTF-8に変換しておかないと104行目の name="encode_hint" value="ぷ" />が逆に悪影響となってUTF-8化後Wikiがうまく編集出来なくなってしまうようです。(POSTした文字列が化ける等) -- mitty? 2004-11-12 (金) 06:07:35
    • 基本的に データ*1だけでなく 全てのファイルのUTF-8への変換が必要です。convertcode.inc.phpは、古いので現在の構成には対応していませんので そのあたりの変更が必要です。 -- merlin 2004-11-12 (金) 07:54:52
  • UTF-8 にしたとき &dagger; とか表示された場合は、?plugin=update_entities をするといいです。cache/entities.dat を更新してくれます。 -- BugbearR? 2004-12-14 (火) 07:36:50
  • こんなもの作ってみました。良かったら試してみて下さい。 -- okkez 2005-02-06 (日) 15:59:36
  • Error message : cannot create ./__temp__ for writing.とでるのですが、これ、どこに掘ろうとしてるのですか?  -- 2007-02-28 (水) 15:24:03
    • どのファイルの何行目がエラーなのかとか、もう少し情報があるでしょうから、もっと問題を掘り下げて下さい。あなたのコメントはUTF-8と関係ない話題とみなされて消されても仕方ありませんよ。 -- 2007-02-28 (水) 23:32:25
  • それでも何点か不具合が発生し、でもほぼ解決したのでここにメモ。 http://jomora.net/wp/index.php?p=1413&c=1 -- 2007-07-15 (日) 11:13:30
お名前:

*1 attach,backup,cache,counter,diff,trackback,wikiディレクトリのファイル

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-03-08 (日) 19:58:51
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.366 sec.

OSDN