“\ x {1}}”未映射到iso-8859-1 perl

时间:2017-03-05 12:07:47

标签: perl

我有一个名为$ title

的字符串
Gardens and Anti-Gardens in Marie de France’s <i>Lais</i>

我收到此错误

"\x{2019}" does not map to iso-8859-1

我尝试删除斜体标签,但它仍然给我错误,即

$title =~ s/<i>|<\/i>//g;

谢谢

2 个答案:

答案 0 :(得分:5)

为什么您认为HTML标记与字符串中的字符有关?

如果你谷歌\x{2019} the first hit is this

  

Unicode字符'右单引号'(U + 2019)

那是。通常,Microsoft Word将撇号(单引号')转换为这些引号。看起来您正在尝试将其字符串打印到转换为ISO-8859-1编码的位置。您应该能够将该角色专门转换为更有意义的内容,例如上面提到的单引号'

$string =~ s/\x{2019}/'/g;

那应该摆脱那一个警告。但是如果你用unicode导入一些东西,然后期望它输出为latin-1,那么更多的字符将会失败。

答案 1 :(得分:1)

编码ISO-8859-1不包含字符U + 2019。