Dzięki tej stronie i kilku innym, stworzyłem prosty kod do odczytu znaczników ID3v2.3 z plików MP3. Takie podejście było świetnym doświadczeniem, ponieważ wcześniej nie miałem pojęcia o hex/byte/binary itp.Kodowanie tekstu w tagach ID3v2.3
Mogę z powodzeniem odczytać dane, ale natrafiłem na problem, który moim zdaniem ma związek z używanym kodowaniem. Zdałem sobie sprawę, że ramki tekstowe mają bajt na początku "tekstu", który opisuje kodowanie używane, i potencjalnie więcej informacji w następnych 2 bajtach ...
Przykład: Dane z ramki TIT2 zaczynają się od bajtu 03 $ (hex) przed faktycznym tekstem. Ten tekst jest wyświetlany prawidłowo, aczkolwiek z dodatkowym znakiem na początku, przy użyciu kodowania.ASCII.GetString
W innym MP3 dane z TIT2 zaczynają się od $ 01, a po nich następuje $ FF $ FE, co moim zdaniem ma związek z Unicode ? Sam tekst jest jednak podzielony, między znakami tekstu znajduje się $ 00, co uniemożliwia wyświetlanie danych w formularzach Windows (jak tylko napotkamy 00, tekst po prostu się zatrzymuje, więc otrzymuję pierwszą postać i to wszystko). Próbowałem już używać Encoding.UNICODE.GetString, ale to po prostu wydaje się bełkot.
Wydaje się, że drukowanie tych danych na konsoli odbywa się z przerwami między poszczególnymi znakami, więc odczyt danych działa poprawnie.
Czytałem oficjalną dokumentację dla ID3v2.3, ale myślę, że po prostu nie jestem na tyle zorientowany, aby zrozumieć sekcję kodowania tekstu.
Wszelkie odpowiedzi lub linki do artykułów, które mogą być pomocne, będą mile widziane!
Pozdrowienia Ross
Dzięki bobince - dała mi dużo do pracy! – phanteh