我注意到我的 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));
}
这在我的浏览器中给出了以下内容:
但是我的 Catalyst 版本是 5.90131,默认情况下应该编码 UTF-8,实际上例程中的调试消息给了我:
[debug] encoding: UTF-8
浏览器在标题中也显示 UTF-8:
开始把我的头发拉出来一点 - 我确信我错过了一些完全明显的东西,请有人指出我正确的方向! 非常感谢。
我已将
use utf8
添加到控制器,这修复了页面文本:
抱歉(以及 @ikegami 的帮助),我发现存在系统编码问题,导致其中某些功能无法正常工作,或者看起来无法正常工作。 仍然需要让数据库部分工作,但这将是另一个,希望不太混乱的问题,如果我到达那一点。