アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTML::Templateでutf-8のテンプレートを読み込むと、テンプレートに書いた日本語部分が文字化けしてしまいます。
以下のようにテンプレートに渡したパラメーターは文字化けしていません。
$template->param(TITLE => 'タイトル');
解決策はありますでしょうか。

A 回答 (2件)

文字化け確認できました。



2箇所コメントアウトして、Utf8で保存すると
文字化けしませんでした。

これで困る状況があったら教えてください。

use strict;
use warnings;
# use utf8;
use HTML::Template;
# binmode STDOUT, ":utf8";

my $title = 'タイトル';

my $template = HTML::Template->new(filename => 'test.tmpl');
$template->param(TITLE => $title);

print "Content-Type: text/html\n\n", $template->output;
exit;
    • good
    • 0
この回答へのお礼

ありがとうございます。
文字化けが解消しました。

お礼日時:2007/03/14 05:36

以下のソースをUtf8で保存して実行したのですが


文字化けになりません。
どうなソース、どんなテンプレートで
文字化けするのでしょうか?

use HTML::Template;

@tmp = <DATA>;

my $template = HTML::Template->new(arrayref => \@tmp);

$template->param(TITLE => "タイトル");

print "Content-Type: text/html\n\n", $template->output;

__DATA__
日本語テンプレート
Utf-8 です
タイトル:<TMPL_VAR NAME="TITLE">

この回答への補足

ありがとうございます。

-----cgiここから-----
#!/usr/local/bin/perl

use strict;
use warnings;
use utf8;
use HTML::Template;
binmode STDOUT, ":utf8";

my $title = 'タイトル';

my $template = HTML::Template->new(filename => 'test.tmpl');
$template->param(TITLE => $title);

print "Content-Type: text/html\n\n", $template->output;
exit;
-----ここまで-----

-----テンプレートここから-----
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><TMPL_VAR NAME=TITLE></title>
<body>
ここは日本語です。
</body>
</html>
-----ここまで-----

以上で、「ここは日本語です。」が文字化けします。
よろしくお願いします。

補足日時:2007/03/13 17:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!