0
我使用Mojolicious(不是Lite)和CPAN::Redis一起使用。显示无效UTF-8的Mojolicious模板
我存储一些数据,这是日本的编码以这样的方式
use Redis;
my $redis = Redis->new;
$redis->set("mykey",$val);
# $val contains a string which was read from a file.
# The value looks like: テスト
代码后来,我读了Redis的那个值:
my $val = $redis->get("mykey");
print Dumper($val); #the value prints correctly in terminal
$self->stash(
myvalue => $val
);
$self->render(
template => "/pages/test"
);
而且模板:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div><%= $myvalue %></div>
...
但它显示的值如:ã¹¹ã。
在浏览器中手动更改字符集没有区别(不按预期显示)。
为什么如果它在终端中正确显示,它在模板中显示不正确?
注:
- 我用的base64编码/解码,并没有改变(我敢肯定,它不是Redis的)。
- 我有日语字体和设置正确安装(我一直在使用日语编码多年,但第一次使用Mojolicious模板进行此任务)。
- 所有文件都以UTF-8格式保存(不使用其他编码)。
- 如果我在模板内写入了一些日文内容(硬编码),它会正确显示。