in reply to Re^4: Handling file path with unusual characters
in thread Handling file path with unusual characters

You have received all the general wisdom applicable to your situation. If you don't tell us more details, how can we give you hints how to approach your concrete problem better?

  • Comment on Re^5: Handling file path with unusual characters

Replies are listed 'Best First'.
Re^6: Handling file path with unusual characters
by samuelalfred (Sexton) on Apr 04, 2011 at 15:16 UTC

    Okey, I'll give it one more shot, then. First of all I'm on a Windows XP machine and my script will exclusively be used on Windows platforms. I'm using ActivePerl and I'm constructing a GUI where the user shall specify the path to a file. If strange characters are used in the path, my script does not work. Below is a simple example that does not work due to the characters in the path. If I select a path without é and ö it works.

    #!/usr/bin/perl use warnings; use strict; my $path = 'C:\Idéer\Första\test.txt'; my @file = (); open(FILE,$path); @file = <FILE>; close(FILE);

    The error message is:

    readline() on closed filehandle FILE at C:\test\testing.pl line 10

    Is it possible now to give me some hints on how to solve this?

    Thanks in advance!

      The first warning happens, because you don't check the return value of open. Use the following instead:

      open FILE, '<', $path or die "Couldn't open '$path': $!";

      The failure you will then discover happens because Perl expects filenames to have no encoding respectively passes the data from the script through directly to the OS, but your script is likely encoded in something other than Latin-1 or whatever Windows uses as the current default locale. See Opening files with japanese/chinese chars in filename for related discussion.