gpt4 book ai didi

perl - 编码模块和引号

转载 作者:行者123 更新时间:2023-12-01 08:13:37 25 4
gpt4 key购买 nike

我正在抓取网页,并从中提取特定部分。该部分包括引号(',字符 146)。我正在尝试将提取的数据打印到文本文件中,但它给了我 ’ 而不是引号。我尝试了以下方法:

  • $content =~ s/'/'/g;
  • 我的 $invComma = chr 146;
    $content =~ s/$invComma/'/g;
  • $content =~ s/\x{0092}/'/g;

这些都没有奏效。我不能 decode('UTF-8', $content) 因为它有宽字符。当我尝试 encode('UTF-8', $content) 时, ’ 改为 ’ 。我也尝试过use utf8,没有效果。

我知道我的文本文件查看器可以显示逗号,因为我将一个逗号打印到一个测试文件并打开它。因此问题出在我的脚本中。

我做错了什么,我该如何解决?

更新:我可以使用 $content =~ s/’/'/g 将其替换为简单的撇号,但我仍然没有'不知道为什么没有其他工作。我还想要一个真正解决问题的修复程序,而不仅仅是解决其中一个症状。

更新 2:hobbs 已通知我该字符实际上是 U+2019 右单引号 并将我的正则表达式更改为使用 chr 0x2019 现在可以使用。

最佳答案

您尝试替换的字符在 Windows-1252 编码中仅为 0x92/146。 Perl 使用 Unicode,其中该字符是 U+2019 右单引号,又名 "\x{2019}", chr(0x2019) , 或 chr(8217).

关于perl - 编码模块和引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37755818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com