DrDragoN
@DrDragoN
Программист

Как получить ID3 в правильной кодировке?

Использую MediaMetadataRetriever для получение тегов, но русские теги иногда в ISO-8859-1, что при переводе в Windows-1251 должны читаться, однако у меня такого не происходит и выводит все время иероглифы

Строка в файле такая: ß õî÷ó áûòü ñ òîáîé
Должно быть: Я хочу быть с тобой

String TEXT = META.extractMetadata( MediaMetadataRetriever.METADATA_KEY_TITLE );
new String( TEXT.getBytes( "ISO-8859-1" ), "Windows-1251" ); // Практически всегда выводит иероглифы


Нашел библиотеку и решил использовать ее для проверки
mp3file = new MP3File( FILE );
new String( mp3file.getID3v1Tag().getSongTitle().getBytes( "ISO-8859-1" ), "Windows-1251" ) // Выводит текст как надо, но иногда вместо кириллических символов проскальзывают латинские


Подскажите, как определять кодировку и декодировать в читаемый вид. Я думаю наверняка есть нативный способ
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 2
thelongrunsmoke
@thelongrunsmoke
Программист
Это проблема самого стандарта. Теги всегда должны быть в ISO-8859-1, но на деле они обычно в национальных кодировках.
Я считаю, что лучшее решение, позволить пользователю выбирать кодировку самостоятельно.
Ответ написан
@apro
Есть библиотека для автоматизации догадок о кодировке: enca cihar.com/software/enca можно с помощью ndk подцепить,
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы