|
|
|
| Приветствую.
Проблема заключается в следующем:
При записи в тег id3v1 строк, содержащих русские и английские символы сразу, русские символы удаляются из строки и сохраняются только английские.
Например при записи, скажем в поле title строки 'song экстрим'
слово 'экстрим' стирается и записывается только 'song '.
Причем если пытаться записать в поле title просто строку 'экстрим', то оно запишется без проблем и никуда не удалится.
Пробовал заранее переводить строку, 'song экстрим' в формат UTF-8,
iconv('cp1251', 'UTF-8', 'song экстрим'); - таким образом
и не помогает.
Вобщем уже все перепробовал.
Модуль записи тегов почему-то не может записывать сразу русские и английские теги в id3v1.
Хочу заметить, что такая проблема только с тегами id3v1.
В id3v2 они абсолютно нормально записываются в формате UTF-8. (после iconv)
Вот один из вариантов записи которым я пользовался (который почемуто записывает в id3v1 только русские, либо только английские символы).
$TaggingFormat = 'cp1251';
require('../../get_file_info/getid3/getid3.php');
$getID3 = new getID3;
require('../../get_file_info/getid3/write.php');
$tagwriter = new getid3_writetags;
$tagwriter->filename = $file_path;
$tagwriter->tagformats = array('id3v1');
$tagwriter->overwrite_tags = true;
$tagwriter->tag_encoding = 'cp1251';
$tagwriter->remove_other_tags = false;
$TagData['artist'][] = $arist_id3v1;
$TagData['title'][] = $caption_id3v1;
$TagData['comment'][] = $comment_idv3v1;
$tagwriter->tag_data = $TagData;
$tagwriter->WriteTags();
|
Помогите справиться с этой проблемой!
<?P.S.
Используется -> getid3-1.7.8b2
Да кстати, заметил что в теги id3v1 строки с русскими символами, даже содержащие английские, нужно записывать в кодировке cp1251. Что насчет id3v2, то тут сойдет UTF-8. Это мое личное наблюдение. - Смотрел в какой кодировке сохраняют id3v1 другие популярные системные редакторы тегов. Если я не прав, то подробно и грамотно объясните свою точку зрения.?> | |
|
|
|
|
|
|
|
для: Dr Lines
(02.02.2009 в 16:08)
| | Чтож, ответа так и недождался, но зато наконец решил проблему!
Вот один из вариантов решения, может быть не самый лучший но работает.
берется файл write.php
в нем ищется строка:
$tag_data_id3v1['title'] = getid3_lib::iconv_fallback($this->tag_encoding, 'ISO-8859-1', @implode' ', @$this->tag_data['TITLE']));
|
<?У меня это где-то в раене 470, и там переправляется ISO-8859-1 на cp1251?>
В остальных близлежащих делается то же самое.
И потом говорится ура.. :) | |
|
|
|