[Moscow.pm] utf8 json Mojolicious

Vladimir Timofeev vovkasm на gmail.com
Сб Сен 27 00:56:44 PDT 2014


А у меня этот пример просто работает правильно, что я делаю не так?
Или, быть может, не вся информация для идентификации проблемы
содержится в письме?

Тестировал вот так:
=== begin of test.pl ===
#!env perl
#use utf8; # Если откомментировать, всё продолжает работать как надо
use Mojolicious::Lite;
get '/' => sub {
    my $c = shift;
    $c->render( json => "тест" );
};
app->start;
=== end of test.pl ===

uname -a
Darwin vovkasm-mac.home 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug
17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64

perl -V (частично)
Summary of my perl5 (revision 5 version 20 subversion 0) configuration:

  Platform:
    osname=darwin, osvers=13.2.0, archname=darwin-2level
    uname='darwin vovkasm-mac.local 13.2.0 darwin kernel version
13.2.0: thu apr 17 23:03:13 pdt 2014;
root:xnu-2422.100.13~1release_x86_64 x86_64 '
    config_args='-de
-Dprefix=/Users/vovkasm/perl5/perlbrew/perls/perl-5.20.0 -Uusethreads
-Aeval:scriptdir=/Users/vovkasm/perl5/perlbrew/perls/perl-5.20.0/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Built under darwin
  Compiled at Jun  3 2014 15:11:56

Перед тестом сделал cpan-outdated|cpanm так что все модули свежие.
Запускаю: perl test.pl daemon
  далее: curl ‘http://localhost:3000'
Вижу: "тест"
Добавляю use utf8;
Повторяю, вижу то же самое.

:-)
Content-Type автоматом проставляется и он application/json, что
подразумевает utf-8. Следовательно возможны три варианта:
1. У вас файл не в кодировке utf-8
2. Вы смотрите браузером, который не умеет application/json
3. Баг в софте (Mojolicious или perl) в вашем окружении


2014-09-26 18:59 GMT+04:00 Максим Владимирович <mmm3 на bk.ru>:
> Кто нибудь знает как поправить кодировку
>
> use Mojolicious::Lite;
>
>
> get '/' => sub {
>   my $c   = shift;
>
>   $c->render(json => "тест");
> };
>
>
> app->start;
>
> дает битую кодировку
>
>
>
>   $c->render(text => "тест");
>
> все нормально
>
>
> С уважением,
>
> Максим
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Vladimir Timofeev <vovkasm на gmail.com>


Подробная информация о списке рассылки Moscow-pm