I thought Unicode::Normalize would be the solution to this problem but after much trying I can't find the solution.

A file named "é" is stored in the file system using the decomposed form of é (0065 0301) rather than 00E9. How do I search for "é" in text or file names and find it regardless of whether it is composed or decomposed?

For example the file /tmp/é created by this script is not found by simply looking for é as the composed character.

        #!/usr/bin/perl
        $dir = "/tmp";
        $f = "$dir/é";
        open F, ">$f" or die $!;
        close F;
        opendir DIR, $dir;
        for (readdir DIR) {
          if (/é/) {
            print "(found é) $_$/";
          }
          else {
            print "(no é) $_$/";
          }
        }

JD

Reply via email to