Hallo!
Ich hab (mal wieder) ein Problem mit den Zeichensätzen:
Ich hab ein kleines Programm, dass aus einer MP3 mit Hilfe der jaudiotagger-Lib den Inhalt der ID3v2Tags ausliest. Anhand eines gespeicherten Bytes wird der Zeichensatz des ausgelesenen Strings bestimmt und umgewandelt, damit er fehlerfrei dargestellt wird.
Nun will ich aber z.B. den Titel der MP3 ändern und wieder im Tag speichern. Will ich den String in ISO-8859-1 speichern funktioniert dies auch wunderbar, aber da ID3v2 auch noch UTF unterstützt muss ich den String irgendwie umwandeln können.
Mein bisheriger Ansatz war einen CharsetEncoder zu benützen:
Vielleicht lieg ich ja jetz auch total falsch, aber es müsste doch jetzt in byteBuffer der umgewandelte String vorliegen. Nur wenn ich dieses jetzt irgendwie als String speichern will wird nicht in dem gewünschten Zeichensatz gespeichert.
mfg flo
Ich hab (mal wieder) ein Problem mit den Zeichensätzen:
Ich hab ein kleines Programm, dass aus einer MP3 mit Hilfe der jaudiotagger-Lib den Inhalt der ID3v2Tags ausliest. Anhand eines gespeicherten Bytes wird der Zeichensatz des ausgelesenen Strings bestimmt und umgewandelt, damit er fehlerfrei dargestellt wird.
Nun will ich aber z.B. den Titel der MP3 ändern und wieder im Tag speichern. Will ich den String in ISO-8859-1 speichern funktioniert dies auch wunderbar, aber da ID3v2 auch noch UTF unterstützt muss ich den String irgendwie umwandeln können.
Mein bisheriger Ansatz war einen CharsetEncoder zu benützen:
Java:
// text enthält den String der geändert werden soll
// charset.toString() liefert den String in den umgewandelt werden soll
CharsetEncoder encoder = Charset.forName(charset.toString()).newEncoder();
try
{
ByteBuffer byteBuffer = encoder.encode(CharBuffer.wrap(text));
}
catch(Exception ex)
{ ...}
mfg flo