binmode( CSV ); sysread( CSV, $bom, 2 ); $/= pack "v", unpack "c", "\n"; while( ) { $_= pack "U*", unpack "v*", $_; # Parse the data that is now in UTF-8 }