#!/usr/bin/perl -w use strict; use utf8; use encoding 'utf8'; use Encode; use Encode::Detect::Detector; open(FILE, "<$ARGV[0]"); my $file; { local $/ = undef; $file = ; } close(FILE); foreach my $line (split("\n", $file)) { my $charset = detect($line); if($charset) { my $data = decode($charset, $line); print "$data :::$charset"; }else{ print $line; } print "\n"; }