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

Special characters (non-English) in Perl and HTML/JavaScript

本文关键字:特殊字符 英语 HTML JavaScript Perl      更新时间:2023-09-26

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

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

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

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

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

#!/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;

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

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

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