ExifInterface: getAttribute для TAG_USER_COMMENT возвращает только «UNICODE» - PullRequest
0 голосов
/ 09 марта 2020

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

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

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

Когда это выполняется, строка s содержит "UNICODE".

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

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

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

1 Ответ

0 голосов
/ 09 марта 2020

Выяснил первую часть.

Вместо использования 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...