IPTC tags with special characters such as &, ø, ë, etc...
Added by Mark Ijsseldijk about 6 years ago
I generate IPTC tags using an Excel spreadsheet and in general the EXIV2 works flawlessly and tags thousands of images in a matter of minutes. I have a couple of issues though:
If a tag contains the "&" symbol then the tag is not written at all. Example below:
exiv2 -M"set Iptc.Application2.CountryName String \"Trinidad & Tobago\"" 14G0003.jpg
If a tag contains a special character such as ø, ç, ä, etc then this letter in the tag is substituted.
exiv2 -M"set Iptc.Application2.City String \"Aückland - Internatiønal\" " 14G0003.jpg
Tag is recorded as: "A³ckland - Internati°nal"
I have found the workaround of entering \u00fc instead of the ü and \0f8 instead of the ø but is there any other option in insert these characters automatically.
Thanks
Mark
Replies (3)
RE: IPTC tags with special characters such as &, ø, ë, etc... - Added by Robin Mills about 6 years ago
You can change the character set encoding on the command line. Search for charset here: http://www.exiv2.org/manpage.html
Are you generating those commands and executing them in Windows? This question is really about how to format command-line arguments correctly in your environment. I suggest a two step approach:
1 Discover the correct command-line arguments (including the charset) that give you the result you desire.
Keep out of Excel. Work in cmd.exe and find the correct command arguments.
2 Discover how to generate the correct command in your environment.
I have a little program args.cpp which I have found very useful for discovering exactly what's on the command line. I've discussed it here: http://dev.exiv2.org/boards/3/topics/2066?r=2067#message-2067
RE: IPTC tags with special characters such as &, ø, ë, etc... - Added by Robin Mills about 6 years ago
Out of curiosity, I tried this on both Mac (bash shell) and Windows/7 cmd.exe.
Mac:
601 rmills@rmillsmbp:~/temp $ exiv2 -pa --grep Caption Stonehenge.jpg Iptc.Application2.Caption String 12 Classic View 602 rmills@rmillsmbp:~/temp $ exiv2 -M"set Iptc.Application2.Caption IPTC tags with special characters such as &, ø, ë, etc..." Stonehenge.jpg 603 rmills@rmillsmbp:~/temp $ exiv2 -pa --grep Caption Stonehenge.jpg Iptc.Application2.Caption String 59 IPTC tags with special characters such as &, ø, ë, etc... 604 rmills@rmillsmbp:~/temp $Windows:
C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>exiv2 -pa --grep Caption Stonehenge.jpg Iptc.Application2.Caption String 12 Classic View C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>exiv2 -M"set Iptc.Application2.Caption IPTC tags with special characters such as &, ø, ë, etc..." Stonehenge.jpg C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>exiv2 -pa --grep Caption Stonehenge.jpg Iptc.Application2.Caption String 57 IPTC tags with special characters such as &, °, δ, etc... C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>
As you can see, the Mac has dealt with this effortlessly. Windows was been challenged. Theres something in Windows called "The Code Page". I found this with Google: http://www-01.ibm.com/support/docview.wss?uid=swg21562473 When I set the code pages to 1252 (ANSI), everything's fine.
C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>CHCP 1252 Active code page: 1252 C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>exiv2 -pa --grep Caption Stonehenge.jpg Iptc.Application2.Caption String 57 IPTC tags with special characters such as &, ø, ë, etc... C:\cygwin64\home\rmills\gnu\exiv2\trunk\msvc2005\bin\win32\releasedll>Being a native English speaker, I find localisation a strange land.
RE: IPTC tags with special characters such as &, ø, ë, etc... - Added by Mark Ijsseldijk over 1 year ago
Sorry to re-activate such an old post but I am still encountering issues with the way tags are being read in other software.
I note on the reply above about the character set encoding on the command line. I cannot find any examples on this so if anyone can advise how to incorporate this in the below command line, that will be appreciated:
exiv2 -M"set Iptc.Application2.Caption String \"F-OJSE Airbus A330-202 510 AirCalin - Air Calédonie International\"" D:\Temp\20B0004.jpg exiv2 -M"set Iptc.Application2.Caption String \"PR-RDD Gulfstream G550 5280 Yamandu Empreendimentos e Participações SA\"" D:\Temp\20B0037.jpg
I have used a workaround as below but this is now also causing issues.
exiv2 -M"set Iptc.Application2.Caption String \"F-OJSE Airbus A330-202 510 AirCalin - Air Cal\u00E9donie International\"" D:\Temp\20B0004.jpg exiv2 -M"set Iptc.Application2.Caption String \"PR-RDD Gulfstream G550 5280 Yamandu Empreendimentos e Participa\u00E7\u00F5es SA\"" D:\Temp\20B0037.jpg
Using exiftool, I can specify the character set as Latin as in below, and this allows the special character to be correctly written and subsequently displayed:
exiftool -charset latin
I'd prefer to used EXIV2 as I have lots of automation setup for this.
Thanks as always