Résultat de charabia lecture de balises unicode en utilisant mp3agic en Java


J'essaie de lire des balises de chansons russes en Java en utilisant mp3agic:

Mp3File song;
try {
    song = new Mp3File(newURI);
    if (song.hasId3v2Tag()) {
        ID3v2 id3v2tag  = song.getId3v2Tag();
        title   = id3v2tag.getTitle();
        artist  = id3v2tag.getArtist();
    }
    else if (song.hasId3v1Tag()){
        ID3v1 id3v1tag  = song.getId3v1Tag();
        title   = id3v1tag.getTitle();
        artist  = id3v1tag.getArtist();
    }
}

Cependant, je reçois ceci"??-2????????? ?????"au lieu de cela " Ки-2Скользкие Миличы". Que puis-je faire pour résoudre ce problème?

Author: Daniil Shevelev, 2013-06-05

1 answers

Une explication de cette question peut être trouvée à: https://github.com/mpatric/mp3agic/issues/39

En résumé, le problème est que l'encodage du texte est windows-1251 (également connu sous le nom de cp1251). Les balises ID3v2 avec des chaînes codées Windows-1251 (ou tout autre encodage qui ne fait pas partie des 4 encodages pris en charge pour ID3v2) ne sont pas valides. Différencier par programme windows-1251 d'iso-8859-1 n'est pas facile, donc détecter automatiquement les chaînes afin de les transcoder peut être délicat.

Certains commentaires intéressants ici: https://superuser.com/questions/495775/how-to-translate-wacky-metadata-to-readable-format

 1
Author: Michael Patricios, 2017-03-20 10:18:21