Perl和HTML / JavaScript中的特殊字符(非英语)

时间:2012-04-17 16:39:53

标签: javascript html perl character-encoding

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

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

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

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

  

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

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

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

相关问题