UTF-8编码的HTML文件:德语Umlaute未正确显示(仅问号)

时间:2014-07-09 15:53:25

标签: html perl encoding utf-8

使用UTF-8时,我在HTML页面中显示德语Umlaute“ÄÖÜ”时遇到问题。以下是示例代码:

#!/usr/bin/perl
use utf8;
print "Content-Type: text/html; charset=utf-8\n\n";
print <<END;
    <HTML>
        <HEAD>
            <META CHARSET='UTF-8'>
        </HEAD>
        <BODY>
            <H1>The Country Österreich</H1>
        </BODY>
    </HTML>
END

结果可见于: http://5mls.com/test_bad.cgi
如您所见,“Ö”未显示 现在有效的代码:

#!/usr/bin/perl
use utf8;
print "Content-Type: text/html; charset=utf-8\n\n";
print <<END;
    <HTML>
        <HEAD>
            <META CHARSET='UTF-8'>
        </HEAD>
        <BODY>
            <H1>The Country Österreich<!-- Э --></H1>
        </BODY>
    </HTML>
END

结果可见于: http://5mls.com/test_good.cgi
这次“Ö”正确显示,因为评论中的俄语字符“Э”。有没有人知道,如果没有俄罗斯人的评论,“Ö”如何展示?

我使用UltraEdit V21创建源文件并将其转换为UTF-8。我使用WS_FTP LE上传服务器上的文件。

1 个答案:

答案 0 :(得分:4)

你没有告诉Perl如何编码输出。

use open ':std', ':encoding(UTF-8)';