我有一个使用utf-8编码的mojolicous app。 我在utf-8中的所有文件(模板,代码,任何东西)。
但是对于第三方服务,我需要以win-1251编码显示我的一个页面。
我在启动时添加新格式:
$self->types->type(wbm => 'text/html; charset=win-1251');
我添加了template / show / mypage.wbm.ep
<%= $txt %>
在我的控制器中,我设置了格式:
$self->render( 'show/mypage', format => 'wbm', txt => 'Превед, win1251');
当我访问127.0.0.1:3000/show/mypage时,我看到正确的类型text / html;字符集=双赢-1251 和错误的字符,如
УУАУЅУЂУЅУЄ,win1251
我尝试在模板中进行编码,如:
<%= Encode::encode('windows-1251',$txt) %>
并尝试在控制器中执行相同操作,但页面仍显示不正确。
请帮帮我。
UPD:
以下是包含完整代码的测试项目https://github.com/korjavin/MojoWinPage。
答案 0 :(得分:0)
由
解决my $page = $self->render( 'show/mypage', format => 'wbm', txt => $txt, partial> => 1); my $win=Mojo::Util::encode ('cp-1251',$page); $self->render(data=>$win);
感谢Sebastian Riedel(https://groups.google.com/forum/#!topic/mojolicious/bX_LLQIsop8)