1

我有使用 utf-8 编码的 mojolicous 应用程序。我所有的文件(模板,代码,任何东西)都在 utf-8 中。

但是对于第三方服务,我需要以 win-1251 编码显示我的页面之一。

我在启动时添加了新格式:

$self->types->type(wbm => 'text/html; charset=win-1251'); 

我添加模板/显示/mypage.wbm.ep

<%= $txt %>

在我的控制器中,我设置了格式:

$self->render( 'show/mypage', format => 'wbm', txt => 'Превед, win1251');

当我访问 127.0.0.1:3000/show/mypage 我看到正确的类型 text/html; charset=win-1251 和错误的字符,如

УУАУЅУЂУЅУЄ, win1251

我尝试在模板中进行编码,例如:

<%=  Encode::encode('windows-1251',$txt) %>

并尝试在控制器中执行相同操作,但页面仍然显示不正确。

请帮帮我。

升级版:

这是带有完整代码的测试项目https://github.com/korjavin/MojoWinPage 。

4

1 回答 1

0

它被解决了

  1. 渲染部分
  2. 编码它
  3. 作为原始数据发送
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 )

于 2013-09-15T05:51:02.580 回答