首先,正如 PP 所指出的,如果您的源文件以 UTF-8 编码,您应该use utf8;
让 Perl 知道并正确解释其中的任何字符串文字。
其次,确保数据库中的文本也被正确编码。这方面的细节将取决于您的数据库,但例如对于 MySQL,最好的方法可能是确保您的文本列具有utf8
字符集和utf8_unicode_ci
排序规则(或适当的国家排序规则方案,如果需要),并包括mysql_enable_utf8
选项使用 DBI 连接到数据库时。
第三,你需要告诉 Perl 你希望你的 I/O 流也被 UTF-8 编码。您可以使用 来执行此操作binmode()
,如下所示:
binmode STDOUT, ':utf8';
最后,您还需要告诉浏览器您正在向其发送 UTF-8 文本。(我怀疑这部分是您的实际问题,但如果您也执行所有其他步骤,您将实现完全支持 Unicode 的工作流程。)您可以通过发送 HTTP 标头来做到这一点:
Content-Type: text/html; charset=UTF-8
和/或等效的 HTML 元标记:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
或者,在 HTML5 中,简单地说:
<meta charset="utf-8">