C::V::JSON
JSONPにしようと思って、allow_callbackつけたら、utf-8が文字化けして困った。
$output .= "$cb(" if $cb; $output .= $json; $output .= ");" if $cb;
とりあえず動くようにしようと、こうしたら治った。
$json = Encode::decode($encoding, $json) if $encoding eq 'utf-8' && $cb; $output .= "$cb(" if $cb; $output .= $json; $output .= ");" if $cb; $json = Encode::encode($encoding, $json) if $encoding eq 'utf-8' && $cb;
眠いのでまぁとりあえずこれでいいや。
追記
bookmarkで、id:miyagawaさんに C::P::Unicode が原因って指摘してもらった。そうか。こういうことか。すっきりしました。Thanks!
if ( Encode::is_utf8($json) ) { $json = Encode::encode($encoding, $json); } if ( Encode::is_utf8($cb) ) { $cb = Encode::encode($encoding, $cb); }