加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中读取ISO 8859-1(Latin-1)编码文本

发布时间:2020-12-15 21:59:40 所属栏目:大数据 来源:网络整理
导读:所以我正在尝试编写一个perl脚本来读取一个用Latin-1编码的文件.由于某种原因,这只是没有成功.当我尝试简单搜索我知道的文件中的字符时(它在第一行),没有任何显示.我正在使用编码“iso 8859-1”;下面,但我也尝试过binmode(STDIN,“:utf8”);.关于我可能做错
所以我正在尝试编写一个perl脚本来读取一个用Latin-1编码的文件.由于某种原因,这只是没有成功.当我尝试简单搜索我知道的文件中的字符时(它在第一行),没有任何显示.我正在使用编码“iso 8859-1”;下面,但我也尝试过binmode(STDIN,“:utf8”);.关于我可能做错了什么以及如何做对的任何建议?
use encoding "iso 8859-1";

while(<>)
{
    if(/ó/gi)
    {
    print "Found one!n";
    }
}

解决方法

不要使用use encoding pragma:它已经坏了.

在此处指定编码:

use open ":encoding(Latin1)";

或者把它放在开放的地方:

open(FH,"< :encoding(Latin1)",$pathname)
   || die "can't open $pathname: $!";

或打开后binmode:

binmode(FH,":encoding(Latin1)")
   || die "can't binmode to encoding Latin1";

如果你正在使用< ARGV>,那么使用open可能是最简单的.

不要忘记在输出流上设置编码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读