note
ikegami
<p>Perl treats file names as opaque strings of bytes. That means that file names need to be encoded as per your "locale"'s encoding (ANSI code page).
<p>In Windows, code page <c>1252</c> is commonly used, and thus the encoding is usually <tt>[wp://cp1252]</tt>.* However, <c>cp1252</c> doesn't support Tamil and Hindi characters.
<p>Windows also provides a "Unicode" aka "Wide" interface, but Perl doesn't provide access to it using builtins**. You can use [mod://Win32API::File]'s <c>CreateFileW</c>, though. IIRC, you need to still need to encode the file name yourself. If so, you'd use <c>UTF-16le</c> as the encoding.
<p>Aforementioned [mod://Win32::Unicode] appears to handle some of the dirty work of using [mod://Win32API::File] for you. I'd also recommend starting with that.
<p>* — The code page is returned (as a number) by the <c>GetACP</c> system call. Prepend "cp" to get the encoding.
<p>** — Perl's support for Windows sucks in some respects.
912442
912442