use Encode; ... while( my $bytesread = $bz->bzreadline(my $line) ){ $bytesread ==-1 and warn sprintf "Error: $bz->bzreadline : %d : %s", $bz->bzerror, $bz->bzerror; $line = decode('utf8', $line ); ... }