ExifInterface: getAttribute для TAG_USER_COMMENT возвращает только "UNICODE"

Я использую ExifInterface для чтения тега EXIF ​​UserComments в файле jpeg в моем приложении Java Android Studio.

Я могу использовать команду exiftool в Linux, чтобы проверить, есть ли данные в поле UserComment.

ExifInterface exif = new ExifInterface(inputStream);
String s = exif.getAttribute(ExifInterface.TAG_USER_COMMENT);

При его запуске строка s содержит "UNICODE".

Есть идеи, что с этим делать?

Также я планирую прочитать другие теги EXIF. Могу ли я сделать несколько вызовов getAttribute() или мне нужно как-то сбросить поток между вызовами?

Заранее спасибо!

1 ответ

Прикинул первую часть.

Вместо использования exif.getAttribute() я использовал exif.getAttributeBytes(). Это считывает его в массив байтов. Затем я использую функцию String для преобразования массива байтов в строку. После этого символы "UNICODE" все еще остаются на передней части строки, поэтому я обрезаю их с помощью substr().

Вот результат:

byte[] s = exif.getAttributeBytes(ExifInterface.TAG_USER_COMMENT);
String u = new String(s, StandardCharsets.UTF_8).substring(7);
Другие вопросы по тегам