welches Format beim Schreiben verwenden

Ich habe vor längerer Zeit ein Excelmakro geschrieben in dem ich meine Musikdateien einlese und pro Titel die Tags in eine Exceltabelle schreibe. Gestern habe ich diese Prozedur wieder einmal laufen lassen und festgestellt dass bei einigen neu hinzugefügten Titeln die Tags(TIT2, TALB, ...) zwischen den einzelnen Buchstaben Sonder/oder Leerzeichen sind. Das schaut dann z. B. so aus: B e a t l e s. In welchem Format muss ich die Datei in MP3TAG schreiben damit diese Zeichen verschwinden?

"B e a t l e s" passiert wenn du utf16 als ansi ließt (weil es für Zeichen < 7F immer 00h 00h .... abgelgt ist).
Das excel utf16 lesen kann, sollte dein exportmarkro sollte die datei aber mit der UTF16BOM beginnen, dann musst du aber auch alles in UTF16 ausgeben.

Poste doch mal dein Makro, dann kann dir hier sicher jemand helfen.

Btw: gibt dir MP3Tag das Encoding raus?

Danke für die Antwort, so schaut die eingelesen mp3-Datei in VisualBasic aus. Zuerst eine "gute" und dann eine mit Sonderzeichen dazwischen:

Edit: Removed binary data from post, please use screenshots for such data

Teil vom Makrocode:

.
.
.
Worksheets(1).Select '-->Liste der mp3-Dateien
LastFile = Cells(Rows.Count, 1).End(xlUp).Row

For FoundFiles = 2 To LastFile

Filename = Worksheets(1).Range("A" & FoundFiles) & Worksheets(1).Range("B" & FoundFiles)
OpenZeileMusik = FreeFile

Open Filename For Binary As #OpenZeileMusik
    FileContent = String(1024, "*")
    Get #OpenZeileMusik, , FileContent
Close #OpenZeileMusik

Debug.Print FileContent
ID3Position = 11
ID3Tag = Mid(FileContent, ID3Position)

While ID3Position < Len(FileContent)
    ID3Frame = Left(ID3Tag, 4)
    ID3Tag = Mid(ID3Tag, 12)

    ID3Länge = Mid(FileContent, ID3Position + 4, 4)
    ID3FrameLänge = Asc(Mid(ID3Länge, 1, 1)) * &H200000
    ID3FrameLänge = ID3FrameLänge + Asc(Mid(ID3Länge, 2, 1)) * &H4000
    ID3FrameLänge = ID3FrameLänge + Asc(Mid(ID3Länge, 3, 1)) * &H80
    ID3FrameLänge = ID3FrameLänge + Asc(Mid(ID3Länge, 4, 1))

    Worksheets(2).Select
    Select Case ID3Frame
        Case Is = "TIT2" 'Titel
        Range("A" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TPE1" 'Interpret
        Range("B" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TALB" 'Album
        Range("C" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TCON" 'Genre
        Range("D" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TCOM" 'Komponist
        Range("E" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TSOT" 'Titelsort
        Range("F" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TSOA" 'Albumsort
        Range("G" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Is = "TCMP" 'Compilation
        Range("H" & FoundFiles) = Mid(FileContent, ID3Position + 11, ID3FrameLänge - 1)
    
        Case Else
        If ID3Frame Like "[A-Z]" Then
            Range("I" & FoundFiles) = ID3Frame
        End If
        GoTo Weiter
    End Select

    ID3Position = ID3Position + 11 + ID3FrameLänge - 1
    ID3Tag = Mid(ID3Tag, ID3FrameLänge)
Wend

Weiter:
Next FoundFiles
.
.
.
Bin für jeden hilfreichen Hinweis dankbar! Danke im voraus!!!

zur Ergänzung meine Mp3Tag-Optionen: Lesen: id3v2, Schreiben: id3v2 id3v2.3 UFT-16

Wenn noch nicht vorhanden, dann im Dialog "Mp3tag/Ansicht/Spalten" bitte zwei Spalten einrichten:

Name: TagRead (TagTypes)
Wert: %_tag_read%[' ('%_tag%')']

Name: Char Enc
Wert: %_id3v2_character_encoding%

Dann für eine 'alte' Datei und für eine 'neue' Datei die in Mp3tag angezeigten Werte hier zeigen.

DD.20170826.1438.CEST

DANKE, war das gemeint?


TagRead (TagTypes) Char Enc ID3v2.3 (ID3vl ID3v2.3 APEv2) UTF-16 ID3v2.4 (ID3vl ID3v2.4 APEv2) UTF-8

Kannst du damit jetzt herausfinden, welche Datei mit welchem Tagtyp für dein Programm funktioniert?

DD.20170826.1524.CEST

Ist mir gerade aufgefallen dass ich zwei verschiedene Char Encodes habe. Ist mein Problem gelöst wenn ich alles mit UTF-8 neu ausgebe? Danke für die Hilfe!

Das kannst du ausprobieren ... mit einer Testdatei.
Einstellung ändern für das Tag-Schreiben in "Mp3tag/Extras/Optionen/Tags/Mpeg/Schreiben".

DD.20170826.1536.CEST

Vielen Dank an alle beteiligten Helfer für den tollen Support! Mit den Einstellungen "ID3v2.4 (ID3vl ID3v2.4 APEv2) UTF-8" kann ich die Dateien wieder fehlerfrei in meiner EXCEL-Prozedur verarbeiten.

Muss ich den Eintrag als "gelöst" kennzeichnen? Und wenn JA WO?

Was mich hier wundert und im Vergleich zu den später gezeigten Tag-Daten:
Du behandelst nur ID3v2.3 Tags, hast aber noch APE Tags in den Dateien. Die APE Tags scheinen nie verändert zu werden. Also sind die vermutlich mit irgendwelchen, aber nicht mehr den aktuellen Daten versehen.

Noch ein Hinweis: der Windows Explorer und WMP kommen (je nach OS Version) nicht mit V2.4 Tags klar. Von daher ist das Schreiben von V2.4 Tags vermutlich suboptimal.

Ich habe erst einmal alle Tags außer ID3v2 gelöscht und dann alles mit ID3v2.4 UTF-8 überschrieben und mein Excelmakro funktioniert einwandfrei.

Ich bin zu sehr Laie um ins Detail zu gehen, bin froh dass es funkt - danke für alle Hinweise!