我是Perl的新手,我需要将’
等字符替换为'
(我想还有更多)
我没有使用UTF-8
作为我的page rendering content type
,而是<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
我知道我没有要展示的代码示例,但我该如何实现?
答案 0 :(得分:2)
’
为0xE2 0x80 0x99
,而0xE2 0x80 0x99
是U+2019 RIGHT SINGLE QUOTATION MARK
字符的UTF-8编码。
右单引号不是字符集iso-8859-1中的有效字符,因此不得不以某种方式阻止此字符被发送到页面输出。这有两种方式:
将其转换为可打印字符(如0x27
,撇号)
$output =~ s/\x{2019}/'/g;
print $output;
将其重写为HTML entity,无论页面编码是什么都应该有效
$output =~ s/\x{2019}/’/g;
print $output;
很可能\x{2019}
并不是您需要关注的原始输出中唯一不可打印的字符(甚至需要对<
和&
等可打印字符进行编码),因此需要已解决此问题的a module。目前我不能确定任何特定模块能解决您的问题,所以我不会推荐一个。