Подскажите пожалуйста кто сталкивался с проблемой:Запускаю Catalyst (8.x) на Windows в режиме plackup таким образом:
plackup --app myapp.psgi
или
twiggy myapp.psgi --listen :3001файлы проекта все в кодировке UTF-8
charset-encoding тоже utf-8простой вывод в консоль написанный русским языком или из базы MySQL - в браузере все отлично (простой вывод сервера), но,
запросы Ajax приходят от сервера в JSON в таком виде: ÐÐÐÐЦÐÐÐÐÐЯ УÐ. вместо кирилицы.
Однако запуск приложения в режиме Catalyst::Devel (myapp_server.pl) или fastCGI (на FreeBSD) работает нормально, в JSON от сервера в Ajax ответах возвращается корректно.
Заголовки простого GET запроса от Ajax отличаются не сильно:
GET:
Заголовки ответа
Date Mon, 05 Sep 2011 11:01:06 GMT
Server HTTP::Server::PSGI
Content-Type text/html; charset=utf-8
X-Catalyst 5.80032
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 3297Заголовки запроса
Host 192.168.10.10:5001
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Connection keep-aliveAJAX:
Заголовки ответа
Date Mon, 05 Sep 2011 11:02:20 GMT
Server HTTP::Server::PSGI
Content-Type text/html; charset=utf-8
X-Catalyst 5.80032
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 154
Заголовки запроса
Host 192.168.10.10:5001
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1
Accept application/json, text/javascript, */*; q=0.01
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
x-requested-with XMLHttpRequest
Referer http://192.168.10.10:5001/
Content-Length 9
Cookie __utma=23936634.930492998.1299269525.1299269525.1299269525.1
Pragma no-cache
Cache-Control no-cacheМожет дело в Content-Type?
> Может дело в Content-Type?подменил Content-Type через Plack::Middleware::Header
builder {
enable 'Header',
set => ['Content-Type' => 'text/html'];
$app;
}не помогло. заголовок изменился - кодировка нет.
я так думаю надо тем же Middleware на лету перекодировать в utf8, но как не знаю =(
Вопрос решился* с выходом Catalyst 5.9xВ итоге на FreeBSD - поднят под Starman
на Windows 7 x64 поднимается под twiggy