Path::Class::Unicode3pm
Maps unicode filenames to local encoding and code pages
Usage
use Path::Class::Unicode;# Use ufile() to create Unicode objectsmy $fn = "\x{55ed}.txt";my $file = ufile("path", $fn);my $fh = $file->open;my $fn = "\x{55ed}.txt";my $file = ufile("/path", $fn);my $uri = $file->uri; # file:///path/%E5%97%AD.txt (always utf-8)my $fh = ufile_from_uri($uri)->open;
Overview
Path::Class::Unicode is a Path::Class extension to handle Unicode file names by mapping them to local encodings when stringified. It maps to UTF-8 for all UNIX systems including Mac OS X and uses Windows code page (like cp932 for Japanese) in Win32 systems.
It's very useful if you store file paths using URI representation like <file://> and uses URI escaped UTF-8 characters for non-ASCII characters. See Path::Class::URI for details.
Todo
It would be nice if we could proxy filehandles using Win32API::File.