0

我想显示从 Perl 发送到我的网页的文本。在 Perl 我有这个集合

print "Content-Type: text/plain; charset=UTF-8\n\n";

而且我很确定我需要更改字符集设置。我的第一个问题是如何更改设置以包含更多语言而不仅仅是更改语言。

我的第二个问题是,如果我直接在 Perl 中设置字符集,我是否还需要在我的 HTML/JavaScript 上更改它,以便显示信息的网页正确显示它?

4

2 回答 2

1

不要忘记根据源编码对文本进行解码和编码!

#!/usr/bin/perl

use strict;
use warnings;
use CGI ":all";
use Encode;

my $cgi = new CGI;
binmode STDOUT, ':utf8';

print $cgi->header(-type    => 'text/html',
                   -charset => 'utf-8');

print $cgi->start_html(-title => 'Test',
                       -charset  => 'utf-8',
                       -encoding => 'utf-8',
                       -head => meta({-http_equiv => 'Content-Type',
                                      -content => 'text/html; charset=utf-8'}));

my $text = ...

Encode::from_to($text, 'latin1', 'utf8');

print $cgi->p($text);
print $cgi->end_html;
于 2012-04-17T18:47:50.187 回答
0

我的第一个问题是如何更改设置以包含更多语言

UTF-8 包括(几乎)所有语言。也许您的意思是“不同的编码”?在这种情况下,你需要知道你的源代码是什么编码的。它在通过 perl之前是从哪里来的?

UTF-8 也是在线的主要编码,您可能最好坚持使用它。这意味着如果你有一个不在 utf8 中的源,你应该首先使用 perl 的 decode() 和 encode()。但同样:您确实需要知道源编码是什么。

于 2012-04-17T16:51:54.687 回答