Perl 在特定的编码中只需要显示一页

Perl 在特定的编码中只需要显示一页,perl,encoding,utf-8,mojolicious,Perl,Encoding,Utf 8,Mojolicious,我有mojolicous应用程序,它采用utf-8编码。 我所有的文件(模板、代码、任何东西)都是utf-8格式的 但是对于第三方服务,我需要用win-1251编码显示我的一个页面 我在启动时添加新格式: $self->types->type(wbm => 'text/html; charset=win-1251'); 我添加模板/show/mypage.wbm.ep <%= $txt %> 当我访问127.0.0.1:3000/show/mypage时,我看

我有mojolicous应用程序,它采用utf-8编码。 我所有的文件(模板、代码、任何东西)都是utf-8格式的

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

我在启动时添加新格式:

$self->types->type(wbm => 'text/html; charset=win-1251'); 
我添加模板/show/mypage.wbm.ep

<%= $txt %>
当我访问127.0.0.1:3000/show/mypage时,我看到了右键text/html;字符集=win-1251 还有错误的角色,比如

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

我尝试在模板中进行编码,如下所示:

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

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

请帮帮我

UPD:

下面是完整代码的测试项目。

  • 渲染部分
  • 对它进行编码
  • 作为原始数据发送

  • 感谢Sebastian Riedel()

    ,您的浏览器检测到文档的编码是什么?编码
    win1251
    不存在,您的意思是
    windows-1251
    $txt
    变量应该做什么,在哪里填充?您可能想了解,和。源文件的编码是什么,您是否使用了
    utf8?我猜答案应该是“UTF-8”和“否”(意思是你实际上没有
    ППццц
    ),而它们应该是“UTF-8”和“是”。你是否尝试过设置
    $self->renderer->编码
    ,请参阅带有自动检测的@amon浏览器show me win-1251。如果没有“-”,我只在字符串中使用它一次进行测试。谢谢您的后期处理,我会试试。@I我告诉您,我的答案是UTF-8和“否”。但是当我添加时使用utf8;在我的控制器类文件中,它没有任何更改。仍然是糟糕的字符作为回应。
    <%=  Encode::encode('windows-1251',$txt) %>
    
    my $page = $self->render( 'show/mypage', format => 'wbm', txt => $txt, partial> => 1);
    my $win=Mojo::Util::encode ('cp-1251',$page);
    $self->render(data=>$win);