This is due to a limitation/bug in PHP, where escapeshellarg() removes some non-ASCII characters in certain cases. I've found that the following manual replacement works better (though it's horribly ugly):

/**
 * A non-ASCII-character safe replacement of escapeshellarg().
 */
function escapeshellarg_special($file) {
  return "'" . str_replace("'", "'\"'\"'", $file) . "'";
}

Not sure if there are other implications to this, but it's something to be considered. This module may be unusable for some countries without using the transliteration module or an ugly workaround like this.

Comments

a.ross’s picture

By the way, I should note that this probably only works properly on linux. Or at least half properly :)

juliencarnot’s picture

Is this a duplicate bug?

a.ross’s picture

Looks like it

juliencarnot’s picture

Status: Active » Closed (duplicate)

Closing this in favor of #1502924 as it has more contributions and patches.