https://bugs.kde.org/show_bug.cgi?id=524798
--- Comment #3 from kart <[email protected]> --- > > Четверг, 27 августа 2026, 19:03 +03:00 от Urs Fleisch > <[email protected] > >: > https://bugs.kde.org/show_bug.cgi?id=524798 > > --- Comment #2 from Urs Fleisch <[email protected]> --- > Are you sure that Kid3 is the problem and not AIMP? > > Here's how Gemini views the matter: > > It is very likely that AIMP is misinterpreting the ID3v2 metadata rather > than > Kid3 corrupting it. > Here is an analysis of why this occurs and why AIMP is the probable > culprit: > > --- > > ### 1. What the "B" Character Control Artifact Usually Means > > In ID3v2 tags (both v2.3 and v2.4), text fields begin with an **Encoding > Byte** > (a single byte prefix before the actual string data) that tells parsers > how to > decode the character string: > > * `0x00`: ISO-8859-1 (Latin-1) > * `0x01`: UTF-16 with BOM (Byte Order Mark) > * `0x02`: UTF-16BE without BOM > * `0x03`: UTF-8 (valid in ID3v2.4) > > When text is written in **UTF-16 with BOM**, the string starts with two > bytes: > `0xFE 0xFF` (Big-Endian) or `0xFF 0xFE` (Little-Endian). > > If a player fails to recognize UTF-16 encoding correctly—or mishandles the > > encoding descriptor byte/BOM when reading ID3v2.3 tags—it will treat the > BOM > bytes as raw ASCII/Latin-1 text. > > * In ASCII/Latin-1 or certain Windows codepages (like Windows-1251), byte > values around `0xFE`/`0xFF` or raw UTF-16 representation can render as > weird > glyphs or **control/garbage characters** (often looking like `B`, `þÿ`, or > > `ÿþ`). > > ### 2. ID3v2 Spec Compliance: Kid3 vs. AIMP > > * **Kid3** uses well-established tag libraries (`TagLib` or its internal > ID3 > parser) that strictly comply with the ID3v2 specification. Kid3 correctly > writes the encoding byte prefix and UTF-16 BOM when saving tags in ID3v2.3 > mode > (which requires UTF-16 for Unicode). > * **AIMP** historically relies on its own custom ID3 parser. Older > versions or > specific configurations of AIMP are known to have bugs where they > incorrectly > strip or misinterpret the leading encoding byte/BOM on certain frames > (like > `TIT2`, `TPE1`, or custom `TXXX` frames), treating the metadata as plain > Latin-1 instead of UTF-16. > > ### 3. How to Verify > > To confirm whether Kid3 wrote standard tags or if AIMP is at fault: > > 1. **Check with `ffprobe` / `id3v2` / `TagLib` CLI tools:** > Inspect the raw tag structure of a processed file using a third > command-line > tool: > ```bash > ffprobe -show_format -print_format json "your_file.mp3" > > ``` > > > If command-line tools, VLC, or MPV display the text cleanly without any > "B" > character, Kid3 wrote standard-compliant ID3v2 tags. > 2. **Test ID3v2.3 Text Encoding Settings in Kid3:** > In Kid3, go to **Settings → Configure Kid3 → Tags → ID3v2** and check the > default text encoding: > * ID3v2.3 technically only supports ISO-8859-1 and UTF-16. > * If AIMP struggles with UTF-16 in ID3v2.3, changing Kid3's write encoding > > setting or saving as **ID3v2.4 with UTF-8** will often bypass AIMP's > UTF-16 BOM > parser bug. > > --- > > ### Conclusion > > Kid3 is adhering to ID3 specifications. The issue stems from **AIMP's ID3 > parser misreading the UTF-16 BOM/encoding header byte** as part of the > string > payload. > > -- > You are receiving this mail because: > You reported the bug. > ffprobe -show_format -print_format json '/home/kartaven ko/Загрузки/113 - Sure Thing.mp3' ffprobe version 7.1.5 Copyright (c) 2007-2026 the FFmpeg developers built with gcc 14.3.0 (GCC) 20250523 (ROSA) configuration: --prefix=/usr --enable-shared --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdi r=/usr/include --disable-stripping --enable-chromaprint --enable-libaom --enable-postproc --enab le-gpl --enable-pthreads --enable-ladspa --enable-libbluray --enable-libtheora --enable-libvorbi s --disable-encoder=vorbis --enable-libvpx --enable-libxcb --enable-libxcb-shm --enable-libxcb-x fixes --enable-libxcb-shape --enable-runtime-cpudetect --enable-libfdk-aac --enable-libdc1394 -- enable-librtmp --enable-libspeex --enable-libfreetype --enable-libgsm --enable-libcelt --enable- version3 --enable-nonfree --enable-opencl --enable-nvdec --enable-nvenc --disable-libopencv --en able-libopenjpeg --enable-libopus --enable-libsoxr --disable-libxavs --enable-libmodplug --enabl e-libmp3lame --enable-libass --enable-gnutls --enable-libcdio --enable-libpulse --enable-libv4l2 --enable-libvpl --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable- version3 --enable-libx264 --enable-libx265 --enable-libvo-amrwbenc --enable-libxvid --enable-ope ngl --enable-vulkan --disable-libglslang --enable-libshaderc --enable-libsmbclient libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.101 / 61. 19.101 libavformat 61. 7.103 / 61. 7.103 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 5.100 / 10. 5.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 libpostproc 58. 3.100 / 58. 3.100 { Unknown encoding Last message repeated 5 times Input #0, mp3, from '/home/kartavenko/Загрузки/113 - Sure Thing.mp3': Duration: 00:02:39.71, start: 0.025057, bitrate: 320 kb/s Stream #0:0: Audio: mp3 (mp3float), 44100 Hz, stereo, fltp, 320 kb/s "format": { "filename": "/home/kartavenko/Загрузки/113 - Sure Thing.mp3", "nb_streams": 1, "nb_programs": 0, "nb_stream_groups": 0, "format_name": "mp3", "format_long_name": "MP2/3 (MPEG audio layer 2/3)", "start_time": "0.025057", "duration": "159.712653", "size": "6390636", "bit_rate": "320106", "probe_score": 51 VLC doesn’t launch with such a file from the command line, but the tags are displayed correctly in graphical mode. Also, the tags aren’t displayed in easytag and mp3tag. I’ll add that the problem occurs when overwriting existing tags in kid3. If you first delete the tags and then re‑enter them, the error doesn’t occur, and the tags are displayed correctly in all programs. I noticed the error recently, as I’ve been using kid3 for a long time and haven’t had any problems. -- Hallow! Here 's what it gives out Илья Картавенко Отправлено из Почты Mail ( https://trk.mail.ru/c/zzm979 ) -- You are receiving this mail because: You are watching all bug changes.
