Catalyst 应用程序 UTF-8 编码似乎不起作用

问题描述 投票:0回答:1

我注意到我的 Catalyst 应用程序似乎无法正确处理非标准字符 - 我第一次注意到这一点是在我使用的 RTF 文本编辑器应用程序在开头/结尾处将 " 字符替换为“有角度的”类型时我为此苦恼过,并抛出了一个新的空白 Catalyst 应用程序,其索引页如下:

sub index :Path :Args(0) {
    my ( $self, $c ) = @_;

    # Hello World
    #$c->response->body( $c->welcome_message );
    $c->response->body("<h1>Hello World, where's the nearest café</h1>");
    $c->log->debug(sprintf("encoding: %s", $c->encoding->mime_name));
}

这在我的浏览器中给出了以下内容:

Browser output

但是我的 Catalyst 版本是 5.90131,默认情况下应该编码 UTF-8,实际上例程中的调试消息给了我:

[debug] encoding: UTF-8

浏览器在标题中也显示 UTF-8:

Browser encoding

开始把我的头发拉出来一点 - 我确信我错过了一些完全明显的东西,请有人指出我正确的方向! 非常感谢。

我已将

use utf8
添加到控制器,这修复了页面文本:

Browser with accented character 但是,输入表单字段仍然没有编码:

Browser page with filled out form field 输入该表格给出:

Form submission result

perl encoding catalyst
1个回答
0
投票

抱歉(以及 @ikegami 的帮助),我发现存在系统编码问题,导致其中某些功能无法正常工作,或者看起来无法正常工作。 仍然需要让数据库部分工作,但这将是另一个,希望不太混乱的问题,如果我到达那一点。

© www.soinside.com 2019 - 2024. All rights reserved.