読者です 読者をやめる 読者になる 読者になる

NeverBlog::Likk::Unexistable;

見なかったことにして下さい

Prject Mod_Calneh のサイトコード

Prject Mod_Calneh のTOPが文字化け起こしてますね…
原因は解ってます、直せます。
直すのも簡単ですが、
直す前に、ちょっと考えてるのですが以下。

Prject Mod_Calnehで記述してあるとおり
サイトコードをUTF-8(unicode)で統一しようと思っています。
ただ、
文字列どもをぶった切る
でも記述したようにローカルテストで動作したのが
サーバ上では上手く動かない件があり、
それは、サーバとローカルの
Perlのバージョン差異に因り、それを突き詰めると
unicodeが何処まで扱えるかという結論に達してしまう。

というのも、
ローカルではPerl5.8で、サーバ上のPerl5.6
そしてPerl5.6ではUnicodeが完全にサポートされてないらしく、
unicode固有の正規表現はサポートされていないという
そして、既知のバグも多いという話…。

なので、サイトコードをutf-8(unicode)で推し進めるか
以前のshiftJisのままにするか
EUCにするか 考え中です。

コードについて全然解らないという人も
いるかもしれないので、
ちょっと軽くメリット・デメリットを並べてみましょうか。
ただ、各コードの特徴とか規格とか生まれとかは
面倒なので説明はパスする
あくまで、Mod_CalnehをPerlを扱う上での話で。

Shift-Jis
元々罪罰++のコード自体がShift-Jisなので
文字コードを直す必要がない
また、Windowsの標準の規格なので、メモ帳でそのまま開け
簡単に変種が可能、特別なエディタを必要としない。
(但し、今のMod_CalnehはEclipseで開発を行ってるので、
特にShift-Jisで有る必要は無い
……以前のバージョンでは、メモ帳で編集を行っていたが、)
htmlを編集したい場合、
ソース表示で文字化けすることなくそのまま表示される(規定設定の場合)
デメリットとしては
Perlで日本語を扱う際に文字化けが発生したり
エラーの原因になったりする。
回避方法はあるが、結構面倒くさい。
(以前のバージョンのカルネで、回避を忘れて、
表が「侮ヲ」とか表示される時があったり…)
また、似非なべりんシステムに致命的欠陥が生じる
(「ー」を認識できないとかとか)

EUC
上記日本語の扱いを回避するために、
Perlで日本語を扱うのはEUCで!」
というサイトが多々あるぐらいである。
(但し、これはPerlunicodeに対応するPerl 5.6x以前の話
今は、EUCunicodeでという記述が増えてきてます)
PerlEUCを扱う為のサイトが充実しているのもマル。
簡単な編集の際に、
メモ帳での編集では文字化けしてしまうが、
フリーソフトのメモ帳++でことが足りる。
秀丸やtera padでも良いか。
デメリットとしては
Eclipceでの設定が面倒くさいぐらいか。
もちろん、元のコードがShift-Jisなので変換する手間は増える

Unicode(UTF-8)
まず、文字コードとしての未来が明るい(ぉ
Perlによる日本語の扱いもほぼ問題がない。
Mod_Calneh のバージョン管理ソフトSVN/subversion
unicodeなので開発における文字コードが統一される
現行サーバのPerlでは使えないものも、
PerlのバージョンがUPされれば対応が簡単
デメリットとしては、
簡単な編集の際は秀丸やtera pad等、utf8が扱えるエディタが必要
(Eclipseは起動ロスとメモリ消費が多いので
簡単な編集には向かない)
また、現行サーバでは一部の日本語処理をEUCに頼らなくてはならない
一々 UTF-8(unicode)で記述されたものを
 →EUCに変換→文字列処理→UTF-8(unicode)にしないとNG
また、Perl-UTF8に関する詳しいサイトがそれ程多くない。

並べるとざっと、こんなところかな
ちなみに、開発速度は UTF-8EUC<Shift-Jis ってな所