如何在perl中替换'with'

时间:2013-07-05 09:37:14

标签: regex perl

我在Perl下面有一段代码

my $file2 = "devil’s-claw-extract.html";
$file2 =~ s/’/’/ig;
print "$file2";

这个代码工作正常(意味着在konsole中运行时替换'with ’)但不能在浏览器中运行。

请帮帮我。

1 个答案:

答案 0 :(得分:4)

当然它“有效”,我会相信,直到你产生一个自成一体的例子,否则。

你的第一个问题是你正在重新发明轮子,你已经有了module on CPAN to do such escaping

use utf8; # because this source file contains special chars
use HTML::Entities;
my $file2 = "devil’s-claw-extract.html";
print encode_entities $file2;

输出:

devil’s-claw-extract.html

encode_entities_numeric

use utf8;
use HTML::Entities 'encode_entities_numeric';
my $file2 = "devil’s-claw-extract.html";
print encode_entities_numeric $file2;

输出:

devil’s-claw-extract.html

其次,值得注意的是,您的输入字符串包含,一个右引号。这有代码点U+2019(不是U+0092,它位于私人使用区域。方便的是,它在Windows-1252编码中解码为,但实际编码应始终为明确设定)。

你可能想要的撇号 'U+0027'