in reply to Re: Detect the Charset of an file
in thread Detect the Charset of an file

Hello again, I tried the code: $d = new Encode::Detect::Detector; $d -> handle($file); ($file is my textfile) $charset = $d->getresult; print "*".$charset."*\n"; I'm getting: Undefined subroutine &main::handel called at .....

Replies are listed 'Best First'.
Re^3: Detect the Charset of an file
by Anonymous Monk on Oct 22, 2013 at 07:17 UTC
    The string "handel" doesn't appear in the code you posted -- in other words you didn't copy/paste your code with typos
      Sorry that's not possible for me. I'm working on 2 machines in our company. My "internet" Computer is not my progamming one. I wanted to write "handle" not handel :-)

        Sorry that's not possible for me....

        Sure it is, until you're able to copy/paste the code you're trying to run, its going to be near impossible for someone to help you point our your real typos in your real code

      use Encode::Detect::Detector; $d -> new Encode::Detect::Detector; $d -> handle($file) $charset = $d -> getresult;
      No I'm not copying from the Encode site. Hmm very strange, I'm trying again and now I did'nt get any error. The problem is I can't post the whole script, because it's not allowed in our company. $file is an XML File whit characters like cech language. The XML Files are already in utf8 coded. In our conversion script we have an recode for all file from lat1 to utf8. Normally when the source file is already utf8 it should not recode the file, but the recode ist also running when the source file is utf8. Very strange.

        The problem is I can't post the whole script, because it's not allowed in our company.

        You don't have to post the whole script, simply post something sequivalent that demonstrates the problem you encounter -- replicate the problem with fewer lines of code

        So far its all been syntax errors

        Here is what I "wrote" by copy/pasting from http://p3rl.org/Encode::Detect::Detector

        #!/usr/bin/perl -- use strict; use warnings; use Encode::Detect::Detector; use autodie qw/ open /; my $octets = 'abc'.chr(266).chr(666); my $filename = shift || \$octets; open my($infh), '<:raw', $filename ; my $d = new Encode::Detect::Detector; while(my $line = readline $infh ){ $d -> handle( $line ); } $d -> eof; close $infh; my $charset = $d->getresult; print "**$filename gots *".$charset."*\n";
        __END__ **SCALAR(0x3f8fac) gots *UTF-8* </c>