my $filename = "\x{4e2d}\x{63f7}"; # or any other way of creating utf8 string my $ret = CreateFileW(encode("utf16le", $filename . "\0"), GENERIC_WRITE, FILE_SHARE_READ, [], CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);