0

Perl から自分の Web ページに送信されている、表示しようとしているテキストがあります。Perlでは、このセットがあります

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

そして、文字セットの設定を変更する必要があると確信しています。私の最初の質問は、言語を変更するだけでなく、より多くの言語を含めるように設定を変更するにはどうすればよいかということです。

2 番目の質問は、Perl で文字セットを直接設定した場合、情報が表示されている Web ページが正しく表示されるように、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 はオンラインで主流のエンコーディングでもあり、おそらく UTF-8 を使用することをお勧めします。つまり、utf8 にないソースがある場合は、最初に perl の decode() と encode() を使用する必要があります。ただし、ソース エンコーディングが何であるかを知る必要があります。

于 2012-04-17T16:51:54.687 に答える