サーバーサイドバリデートで気をつけること

サーバーサイドで@Maxbytelengthを使う時にcharsetに気をつける。
charsetを省略した場合にはシステムプロパティの"file.encoding"からデフォルトの文字セットを取得するようだ。

なので全角文字で1文字を2バイトで計算して、5文字と考えているのに、
@Maxbytelength(maxbytelength = 10)

とcharsetを省略して書くと
Windows … sjis=1文字が2バイト
Linux  … utf-8=1文字が3バイト

というようにOSによってズレが出てしまう。

よって
charset="sjis"
と指定すると5文字で2バイト扱いになる。





http://d.hatena.ne.jp/suusuke/20090125/1232864316

http://d.hatena.ne.jp/unageanu/20080513/1210686121