perl - 如何从 Perl 输出 UTF-8?

标签 perl unicode utf-8

我正在尝试使用 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”。

最佳答案

use utf8; 不启用 Unicode 输出 - 它允许您在程序中键入 Unicode。将其添加到程序中的 print() 语句之前:

binmode(STDOUT, ":utf8");

看看是否有帮助。这应该使 STDOUT 输出为 UTF-8,而不是普通的 ASCII。

关于perl - 如何从 Perl 输出 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627661/

相关文章:

regex - 如何在Perl中将变量用作正则表达式修饰符?

Perl,等待非子进程退出

unicode - 将 UTF-16 视为固定的 16 位编码会带来什么问题?

java - Java 中的 Unicode 转义语法

python - Django:非ASCII字符

perl - 在Perl中如何实现Tie::IxHash?

mysql - 具有未定义列的 SQL 数据库

具有 unicode 范围的 Python 正则表达式匹配不在范围内的字符

unicode - 如何强制 Notepad++ 仅以 UTF-8 格式打开文件?

java - 无法使用encodeURIComponent和java.net.decode解码russing字符串