替换在perl中

时间:2016-05-11 21:51:55

标签: perl

我是Perl的新手,我需要将’等字符替换为'(我想还有更多)

我没有使用UTF-8作为我的page rendering content type,而是<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

我知道我没有要展示的代码示例,但我该如何实现?

1 个答案:

答案 0 :(得分:2)

cp1252 encoding中的{p> ’0xE2 0x80 0x99,而0xE2 0x80 0x99U+2019 RIGHT SINGLE QUOTATION MARK字符的UTF-8编码。

右单引号不是字符集iso-8859-1中的有效字符,因此不得不以某种方式阻止此字符被发送到页面输出。这有两种方式:

  1. 将其转换为可打印字符(如0x27,撇号)

    $output =~ s/\x{2019}/'/g;
    print $output;
    
  2. 将其重写为HTML entity,无论页面编码是什么都应该有效

    $output =~ s/\x{2019}/&rsquo;/g;
    print $output;
    
  3. 很可能\x{2019}并不是您需要关注的原始输出中唯一不可打印的字符(甚至需要对<&等可打印字符进行编码),因此需要已解决此问题的a module。目前我不能确定任何特定模块能解决您的问题,所以我不会推荐一个。