EthnaのUTF-8化
2007年4月16日
“Ethna UTF-8″とかでググると、わんさか出てくるネタ。
前は無理矢理無視してEUC-JPでコーディングしてたのに
別件で他人事じゃなくなってしまった。
仕方ないので以下↓のように対処
- まずはnkfコマンドでアプリ側を全てEUC-JPからUTF-8へ変更する。
-
次にアプリ側の”app/アプリ名_ActionForm.php”へ
「本体側の”Ethna/class/Ethna_ActionForm.php”内で全角文字を含むメソッド」を全て書き移してオーバーライドする。 - アプリ側はUTF-8なので文字化けが起こらないようになる。
ActionErrorをオーバーライドする方法が一番スマートっぽかったのですが
今回はアプリがUTF-8なので、
もし全角文字のエラーメッセージをソースにベタ打ちした場合に文字化けるという点で
なんか間違ってる気がしたのでやめました。
今回はアプリがUTF-8なので、
もし全角文字のエラーメッセージをソースにベタ打ちした場合に文字化けるという点で
なんか間違ってる気がしたのでやめました。
また、Ethna本体をUTF-8化するという漢な方法もあるようですが
Ethnaライブラリの管理がその分面倒になるので却下しました。
Ethnaライブラリの管理がその分面倒になるので却下しました。
ひとつ終わったので
DBがMySQL4.0系でEUC-JPしか使えない件について
ゆっくり考えることができます。(多分どうにもならない)
DBがMySQL4.0系でEUC-JPしか使えない件について
ゆっくり考えることができます。(多分どうにもならない)
***追記***
“ethna utf-8″とかで来る人をちらほら見るので、nkfコマンドを載っけときます。
#!/bin/sh for i in `find ./ -name '*.php'` do # -w = UTF-8へ変換 # ちなみに -e で EUC-JPへ変換 nkf -wLu $i > $i.bak rm $i mv $i.bak $i done
カレントディレクトリ以下の全てのファイルをUTF-8に置換します
“.tpl”とか別の拡張子のファイルを変換したい場合には、findコマンドの引数を書き換えて下さい。