Debuginfo

思考とアウトプット

Mojoliciousの文字化けをTengのinflateでデコードする

MojoliciousのJSON出力で文字化けのyusukebeさんのコメントにもあるようにMojoliciousは内部的にutf8フラグを落としているようです。 毎回decode_utf8をするのは面倒なのでTengのスキーマ宣言クラスでinflateしてしまいましょう。

package MyApp::DB::Schema;
use Teng::Schema::Declare;
use utf8;
use Encode;
use Data::Dumper;

table {
    name 'user';
    pk 'id';
    columns qw/id username comment/; 

    inflate qr/comment/ => sub {
        my $value = shift;
        return decode_utf8($value);
    };
};