ページの作成や編集にはユーザ登録が必要です。
なんちゃってUTF8化プラグイン
- 投稿者: MRB
- カテゴリ: 新規
- 優先度: 低
- 状態: 提案
- 日時: 2015年02月13日 07時58分17秒
内容
FSwikiをUTF8で使用するにあたり、各種APIのサブルーチンを上書きするプラグインです。
使用上の注意
基本的に、インストール直後に有効化することを前提としており、既存で運用しているFSwikiへの適用は非推奨です。
- 既存のページをUTF8したページ名に変更はしませんので、日本語ページ名へのWiki内リンクは不正になります
- coreプラグインの「source」は対策プラグインを同梱していますが、その他のプラグインは対応していません。例えば、「attach」プラグインなどは修正が必要です
追加で設定必要な事項
このプラグインを有効化しただけではUTF8として動作はしません。
- wiki.cgiに「use utf8;」を追加、並びに下部にあるキャラセットを指定している部分を「EUC-JP」から「UTF8」に変更
- お使いのテンプレートファイルのキャラセットを「UTF8」に変更
- 外部ツールなどを利用し、すべてのファイルの文字コードをEUCからUTF8に変換
物
「_ex_utf8」と「zzz_utf8」の両方を有効化してください。
- plugin.zip(306)
その他
自前で運用しているFSwikiでは問題なく稼働しています。が、Farmなど色々動かない部分のある可能性があります。ご利用は計画的に。
コメント
- 文字化けが発生していたのを修正しました。(元のままでは例えば「項目」という文字列が文字化けします) - MRB (2015年02月18日 22時16分51秒)
既存で運用しているwikiをUTF8化する場合
dataフォルダに有るEUCでURLエンコードされたファイル名の.wikiファイルを、UTF8のURLエンコードに変更が必要です。perlスクリプトのサンプルコードを置いておきます。dataの中の.wikiファイルをc:\testに移動して実行する前提です
- 以下のスクリプトでUTF8のURLエンコードにした場合、OSのファイルシステムの最大文字数を超えてしまうと変換がうまくいきません。元のページ名を短くする必要があります。
- 20文字以下(UTF8換算で60バイト、URLエンコード後は180バイト)が良いと思います。
#!/usr/bin/perl use strict; use utf8; use warnings; use Encode; use URI::Escape; chdir("/test"); #When saving this file, set the character code to EUC #command prompt #c:\usr\bin\perl.exe C:\tmp\tstcode.pl my $tmpfilename; #for (glob(<c:\\test\\*.txt>)) { for (glob("*")) { $tmpfilename = $_; # print $tmpfilename . "\n"; $tmpfilename = uri_unescape($tmpfilename); Encode::from_to( $tmpfilename, "EUC-JP", "utf8" ); $tmpfilename = uri_escape($tmpfilename); # print $tmpfilename . "\n"; rename ($_,$tmpfilename) or die "$!"; }
最終更新時間:2018年04月14日 11時47分03秒