簡體   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