繁体   English   中英

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

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

我正在尝试显示从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的encode()和encode()。 再说一遍:您确实需要知道源编码是什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM