I just got to look into this one again a little further, and it does seem that reading a utf16 file like this doesn't work:
my $contents = slurp( $file, :enc("utf16") ); Though this, however, does work: my $fh = $file.IO.open( :r, :enc("utf16") ); my $contents = $fh.slurp; Also the routine form (as opposed to the method form) of slurp works with other encodings like utf8 and latin1. So I'm opening an issue for this on github: https://github.com/rakudo/rakudo/issues/3691