shuwatto
(Shuwatto)
1
こんにちはshuwattoです。
StringValidatorの文字数計算がstrlenになっていて、
マルチバイトだと文字数を正確に計算できないので、バグレポを出したのですが、Qiangからの返事は「php.iniでstr系関数をmb_str系関数に置き換える設定をすればすむので修正しない」ということでした。
http://code.google.c…s/detail?id=329
ご丁寧にphp.iniがそういう設定になっている環境ばかりだといいのですが、そういうわけでもないので
・FWに手を入れる
・自分でバリデータを書く
・.htaccessで設定を変える
といったような方法を考えています。
将来的に日本で使われるバリデーションルールを自分で追加するなら、
2番目の方法がいいかと思うのですが、
皆さんはどういう対応をされていますか、ご意見をお聞かせください。
よろしくお願いします。
iwasaki
(Iwasaki)
2
Quote
・FWに手を入れる
・自分でバリデータを書く
・.htaccessで設定を変える
といったような方法を考えています。
将来的に日本で使われるバリデーションルールを自分で追加するなら、
2番目の方法がいいかと思うのですが、
皆さんはどういう対応をされていますか、ご意見をお聞かせください。
FWに手を入れるのはFWアップデートの際に忘れてしまいそうですし、
htaccessを使うほどの事でもないので、
自作バリデータを書いて使ってます。
PHP6になれば、strlenでunicode文字数を問題なく数えられるようにできるようですが。。。
shuwatto
(Shuwatto)
3
こんにちは、shuwattoです。
Quote
FWに手を入れるのはFWアップデートの際に忘れてしまいそうですし、
htaccessを使うほどの事でもないので、
自作バリデータを書いて使ってます。
レスありがとうございます。
iwasaki様を見習って私も自作バリデータにしようと思います。
Yiiは他のFWに比してi18nに力を入れているという認識だったのですが、
やはり英語以外で使うにはいろいろ工夫する必要がありますね。
jamband
(Tmsongbooks215)
4
yii1.1.4使ってます
例えば、array(‘title’, ‘length’, ‘max’=>50, ‘encoding’ => ‘utf8’),
と書くmb_strlenが適用されるみたいです ( 'utf8’が正しいのかはわかりませんが )
追加
1.1.7以降はmb_strlenがあればなにもしなくてもOKみたいですね
http://code.google.com/p/yii/source/browse/trunk/CHANGELOG#231