Как стать автором
Обновить

Комментарии 32

используйте подсветку синтаксиса пожалуйста
Разве ещё кто-то пользуется кодировкой cp1251 в базе данных?
Бывают тяжелые случаи когда данные с кирилическими символами, хранять в столбце с чарсетом latin1 :)
почему нет, если заведомо известно что будет только латинский и русский алфавит?
я не вижу среди указанных причин ни одной стоящей в случаях, когда заведомо известно то, что весь контент будет только на русском языке.
Хм. Даже если опустить универстальность UTF-8, возможность хранить любые символы из юникода и другие плюсы, то разве Вы ни с json, ни с ajax не работаете?
я всегда с utf8 работаю ) но знаю что json и ajax и в cp1251 работают нормально.
а вот насчет универсальности и возможности хранить любые символы я уже писал выше — если нужен только русский язык, то пофигу.
Если перекодировка из cp1251 в utf8 и обратно для работы — это по вашему «нормальная работа» — то да. :)

Любые символы — это, например, №, §, ©, ‰, →, ■, ♥, ☺ и т.п. — cp1251 из них какашку сделает.
Да не, ничего не перекодируется.
А насчет символов — я их как-то привык превращать в html-сущности.
К сожалению до сих пор очень часто такое встречается…
INSERT… SELECT CONVERT USING utf-8?
Вам не стыдно такой код выкладывать? Буквально по каждому методу, ровно как и по всему классу можно написать много-много строчек критики.

> $createTableStr = str_replace($this->_charsetFrom, $this->_charsetTo, $createTableStr);
Это вообще жесть! А если у меня название ячейки содержит строку с кодировкой? (случай клинический, приведен для примера)
вот блин что вы к человеку прикопались??
Если класс работает как ожидается в данном конкретном случае его структура не имеет значения — операция разовая по сути.
А если вы такой ярый стороник перфекционизма так отрефакторите данный код и выложите вашу версию.

Если я пишу маленькую тулу для себя, то я ее напишу как угодно. Если я захочу выложить свой код, то приведу его в порядок. И уж всяко никак не буду комментировать каждую строчку.
Ложим толстый на тех, кто newbie? :D
Любой код можно бы покритиковать, было бы желание.
Любой код *надо* критиковать. Чтобы автор в будущем писал лучше (или вообще перестал это делать) и чтобы самому знать как делать не надо.
согласен с вами.
как раз это и сделано, для того чтобы конвертировать еще и ячейки, а не только таблицу.
Одна колонка будет называться text_cp1251, другая — textCp1251. Как менять будете? Я уж молчу о том, что потом огребешь огромное кол-во проблем с рефакторингом.

Это все равно, что XML обрабатывать не при помощи xpath, а при помощи регулярных выражений.
а сдампить? перекодировать дамп и sed ом заменить кодировку в create?
Сколько времени уйдет?
минут 5 если не гуглить :)
я так понял ОП имел ввиду что mysqldump + iconv + sed займут дольше чем загрузка данных в пхп и перекодирование их
Не думаю что прогнать все данные разом через 4 пайпа будет медленнее чем по одной записи с копированием в несколько таблиц в похапе.
Про способ могу ошибаться, без форматирвоания не смог разобраться что там происходит :)

Да и в данном случае разница во времени не играет роли, операция разовая, срочности не требующая и если данных мало то и там и там будет быстро, если данных много то от того что вместо 20 минут я буду ждать 30 ничего не случится.
полностью согласен, поэтому и написал сооветствующий коммент

не вижу смысла городить сомнительный класс
в PHP есть такая конструкция
$arr[] = $val;
Это вы к чему?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории