Umlauts trouble

Started by fotoschubser, December 15, 2019, 05:04:05 AM

Previous topic - Next topic

fotoschubser

Hi,

I want to create a simple table with some meta data of all my photos.
Unfortunately I stumble over the umlauts.

Working with the windows cmd I observe the following behavior:

When I run

exiftool.exe -r -filepath -filename -T "\\share\photos"

the filepath for all files with umlauts in the path is not printed into the table. (e.g. for "März").

So specifically e.g.
exiftool.exe -r -filepath -filename -T "\\share\photos\2018\03-M*"
results in:

Quote-   01.jpg
-   02.jpg
-   03.jpg
...

Whatever I tried with inserting "-charset filename=utf8|latin|latin2" or "-charset utf8|latin|latin2" did not help.

Interestingly running the command
exiftool.exe -r -filepath -filename -T "\\share\photos\2018\03-März"

results in:

QuoteFileName encoding not specified.  Use "-charset FileName=CHARSET"
\\share\photos\2018\03-März\01.jpg   01.jpg
\\share\photos\2018\03-März\02.jpg   02.jpg
\\share\photos\2018\03-März\02.jpg   03.jpg
...

But I can't find out what charset exiftool is internally using in this case.

Any help appreciated.

Kind regards
fotoschubser

Phil Harvey

That is unfortunate, but not particularly surprising.

Using wildcards with Unicode filenames is a problem (see Common mistakes 2f).

The FilePath tag relies on the Cwd::abs_path() library function, and it is not surprising if this doesn't handle Unicode characters properly.

Honestly, there isn't much I can do about this because the support for Windows Unicode file names in Perl is really lacking.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

fotoschubser

Thanks Phil,

In parallell I found

FilePath - Does not support Windows Unicode file names
source: https://exiftool.org/TagNames/Extra.html

So now I'm using "directory" instead, which works fine.

But still: how comes that exiftool.exe -r -filepath -filename -T "\\share\photos\2018\03-März" works properly?
But not exiftool.exe -r -filepath -filename -T "\\share\photos\2018"
At lease there is no intended wildcard, maybe it's internally used and not obvious.

BR
fotoschubser

Phil Harvey

I can't answer that.  I don't know the inner workings of the CWD module.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).