Hi,
ich beschäftige mich jetzt schon ne weile mit einem Media-Player-Projekt (mittlerweile der 2. komplette Rewrite ;-)) und habe da bisher immer ein Problem mit dem Zeichensatz beim auslesen von ID3-Informationen. Jetzt dachte ich ich hätte es endlich gelöst, aber die Umlaute werden immer noch nicht richtig dargestellt.
Ich benutze aktuell folgenden Code:
getContent() gibt mir den Inhalt eines ID3-Tags zurueck, wobei das erste Byte den Zeichensatz definiert und der Rest dann der eigentliche Text ist.
Ich dachte, dass so die Probleme mit dem Zeichensatz geregelt sein sollten, aber Umlaute werden immer noch falsch ausgegeben (sowohl in einen FileWriter als auch in eine Message-Box). Ich habe mal Testweise alle als UTF-16 bzw. UTF-8 auslesen lassen, aber auch das hat nicht geholfen.
Als Beispiel (falls das hier durch das Forum noch irgendwie dargestellt wird):
"MÀnner" statt "Männer"
Habt ihr eine Idee was ich falsch mache? Muss ich das mit dem Zeichensatz irgendwo anders ansetzen?
ich beschäftige mich jetzt schon ne weile mit einem Media-Player-Projekt (mittlerweile der 2. komplette Rewrite ;-)) und habe da bisher immer ein Problem mit dem Zeichensatz beim auslesen von ID3-Informationen. Jetzt dachte ich ich hätte es endlich gelöst, aber die Umlaute werden immer noch nicht richtig dargestellt.
Ich benutze aktuell folgenden Code:
Code:
String getTag( String id, ID3v2 id3 ) throws ID3v2Exception
{
Vector vec = id3.getFrame( id );
if( vec.size() > 0 )
{
byte[] cont = ( (ID3v2Frame) vec.get( 0 ) ).getContent();
String enc = "ISO-8859-1";
switch( cont[0] )
{
case 1:
enc = "UTF-16";
break;
case 2:
enc = "UTF-16BE";
break;
case 3:
enc = "UTF-8";
break;
}
try
{
// HIERAUF KOMMTS WOHL AN
return new String( cont, 1, cont.length - 1, enc ).trim();
}
catch( UnsupportedEncodingException e )
{
LogCore.logException( this, e, "Charset '" + enc + "' fuer ID3 nicht vorhanden" );
return new String( cont, 1, cont.length - 1 ).trim();
}
}
else
return null;
}
getContent() gibt mir den Inhalt eines ID3-Tags zurueck, wobei das erste Byte den Zeichensatz definiert und der Rest dann der eigentliche Text ist.
Ich dachte, dass so die Probleme mit dem Zeichensatz geregelt sein sollten, aber Umlaute werden immer noch falsch ausgegeben (sowohl in einen FileWriter als auch in eine Message-Box). Ich habe mal Testweise alle als UTF-16 bzw. UTF-8 auslesen lassen, aber auch das hat nicht geholfen.
Als Beispiel (falls das hier durch das Forum noch irgendwie dargestellt wird):
"MÀnner" statt "Männer"
Habt ihr eine Idee was ich falsch mache? Muss ich das mit dem Zeichensatz irgendwo anders ansetzen?