http://www.perlmonks.org?node_id=1199841


in reply to Re^3: Accent file names issue
in thread Accent file names issue

As stated, this only works on Windows, also the OP asked for support for Windows

But on Windows I myself would prefer to use Win32::LongPath, because it supports real Unicode Directories and also filename up to 32000 chars

Have a look on the following script: (You have to create these directories first)

use strict;
use warnings;

use utf8;
use feature 'unicode_strings';
use charnames ':full';

binmode(STDOUT, ":unix:utf8");


my @strange_dirs = (
					'documentação',
					'AC_RAÍZ_CERTICÁMARA_S',
					'Катюша',
					'Катюша',
					'москва',
					'ελληνικά-русский',
										
);

for my $dir (@strange_dirs)	{
	print "Looking for directory: [$dir]\n";

	if (-d decode_u8($dir)) {
		print "Directory found: [$dir]\n";
	}
	else	{
		print "---> Error: Directory [$dir] not found <---\n";
	}
}

print "---- now the same with Win32::Longpath ----\n";

use Win32::LongPath;
 
for my $dir (@strange_dirs)	{
	print "Looking for directory: [$dir]\n";

	if (testL ('d', $dir)) {	# same as -d $dir
		print "Directory found: [$dir]\n";
	}
	else	{
		print "---> Error: Directory [$dir] not found <---\n";
	}
}
 



sub encode_u8 { my $s = shift; utf8::encode($s); $s };
sub decode_u8 { my $s = shift; utf8::decode($s); $s };

You will see that Win32::LongPath correctly displays all these directories, but -d decode_u8($dir) doesn't.

My test Environment is: Windows 10 Version 10.0.14393, Perl 64-bit (revision 5 version 22 subversion 2)