Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl和HTML/JavaScript中的特殊字符(非英语)_Javascript_Html_Perl_Character Encoding - Fatal编程技术网

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

Perl和HTML/JavaScript中的特殊字符(非英语),javascript,html,perl,character-encoding,Javascript,Html,Perl,Character Encoding,我试图显示从Perl发送到我的网页的文本。在Perl中,我有这个集合 print "Content-Type: text/plain; charset=UTF-8\n\n"; 我很确定我需要更改字符集设置。我的第一个问题是,如何更改设置以包含更多语言,而不仅仅是更改语言 我的第二个问题是,如果我在Perl中直接设置了字符集,那么我是否还需要在HTML/JavaScript中更改它,以便在web页面上显示信息 显示在屏幕上是否正确显示 我的第一个问题是如何更改设置以包含更多内容 语言 UTF-8

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

print "Content-Type: text/plain; charset=UTF-8\n\n";
我很确定我需要更改字符集设置。我的第一个问题是,如何更改设置以包含更多语言,而不仅仅是更改语言

我的第二个问题是,如果我在Perl中直接设置了字符集,那么我是否还需要在HTML/JavaScript中更改它,以便在web页面上显示信息 显示在屏幕上是否正确显示

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

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

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

不要忘记根据源代码对文本进行解码和编码!
我从untappd json api获取数据。这是一个啤酒网站,很多啤酒的名字都是外国的,而且他们的角色并没有完全显示出来。你们问过他们吗?我可以想象他们正在使用UTF-8,但是……我问了,但没有得到回复。如果内容类型是在HTTP头中设置的,则不必在HTML中设置(特别是HTML技巧仅适用于HTML内容)。真正的答案是stackoverflow。我同意这个答案,除了
Encode::from_to()
行。为什么不使用完整的utf8,因此也用utf8编码源数据,而不是将其从拉丁语转换成拉丁语?@dolment-这一行是如何更改编码的示例,因为数据是从其他编码源读取的。当然,拉丁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;