【发布时间】:2010-10-12 06:37:59
【问题描述】:
我正在尝试使用utf8 pragma 编写 Perl 脚本,但得到了意想不到的结果。我正在使用 Mac OS X 10.5 (Leopard),并且正在使用 TextMate 进行编辑。我的编辑器和操作系统的所有设置都默认为以 utf-8 格式写入文件。
但是,当我在文本文件中输入以下内容,将其保存为“.pl”并执行它时,我会得到友好的“带问号的菱形”来代替非 ASCII 字符。
#!/usr/bin/env perl -w
use strict;
use utf8;
my $str = 'Çirçös';
print( "$str\n" );
知道我做错了什么吗?我希望在输出中得到“Çirçös”,但我得到的是“ir��s”。
【问题讨论】:
-
也许它不是程序.. 我认为它是你的外壳或你的编辑器,它执行输出
-
所有答案都正确回答了如何将其显式设置为 UTF8 的问题。我认为您应该调整终端的区域设置,如stackoverflow.com/a/14405949/498634 所示。终端可能未设置为 UTF8,然后以 UTF8 写入 STDOUT 的数据将被错误编码!
-
Great answer 如何使用
utf8: