Комментарии 26
ух ты, спасибо!
0
Хорошо бы предупредить людей, которые всё это будут творить что
1. В базе данных могут случиться всякие .gif и .jpg (аватары, скажем), которые после конвертировани из windows-1251 в utf-8 сломаются (впрочем это редкость)
2. Почти 100% гарантия того, что где-нибудь в PHP-коде есть неявное предположение: 1 символ == 2 байт, так что сайт нужно после конвертации долго тестировать (не забудьте редко используемые части типа регистрации на сайте и высылки письма с паролем!)
1. В базе данных могут случиться всякие .gif и .jpg (аватары, скажем), которые после конвертировани из windows-1251 в utf-8 сломаются (впрочем это редкость)
2. Почти 100% гарантия того, что где-нибудь в PHP-коде есть неявное предположение: 1 символ == 2 байт, так что сайт нужно после конвертации долго тестировать (не забудьте редко используемые части типа регистрации на сайте и высылки письма с паролем!)
+1
1. Спасибо, пердупредим :)
2. Насчет тестирования очень верно - неприятные моменты все-равно будут - гарантированно. Тестить обязательно!
2. Насчет тестирования очень верно - неприятные моменты все-равно будут - гарантированно. Тестить обязательно!
0
Не стоит забывать что код php нужно будет перепроверять!
Функции работы с строками должны быть заменены на их multibyte-аналоги.
Например strlen - покажет неверное кол-во символов строки, содержащей UTF-8,
а mb_strlen - посчитает верно.
Функции работы с строками должны быть заменены на их multibyte-аналоги.
Например strlen - покажет неверное кол-во символов строки, содержащей UTF-8,
а mb_strlen - посчитает верно.
0
Мне ненадо, но спасибо за труды все равно, вдруг понадобится.
0
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за поправки, учел.
Еще знающие люди посоветовали:
" 4m@t!c комментирует...
Достаточно одного запроса "SET NAMES utf-8", которая в том числе изменит CHARSET
Не обязательно конвертировать дампы iconv. мжно сделать это с помощью ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
"
Еще знающие люди посоветовали:
" 4m@t!c комментирует...
Достаточно одного запроса "SET NAMES utf-8", которая в том числе изменит CHARSET
Не обязательно конвертировать дампы iconv. мжно сделать это с помощью ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
"
0
Замечание про ALTER TABLE - правильное и неправильное одновременно. Оно блокирует базу всё равно, а backup'а у вас не остаётся. Хотя всё зависит от конкретной ситуации, конечно...
0
А что делает ключ -a в команде cp?
В cp на FreeBSD такого ключа нет, насколько я нагуглил сейчас - в linux тоже..
В cp на FreeBSD такого ключа нет, насколько я нагуглил сейчас - в linux тоже..
0
-regextype posix-extended пришлось выкинуть совсем и сделать через grep (для большей совместимости с ранними версиями), в связи с чем сам скрипт существенно изменился.
Не могли бы Вы подсказать будет ли он теперь работать в FreeBSD?
Не могли бы Вы подсказать будет ли он теперь работать в FreeBSD?
0
А кодировку отдачи можно и в .htaccess задать:
AddDefaultCharset UTF-8
AddDefaultCharset UTF-8
0
Да, то-же вариант, но если есть доступ к конфигурации лучше это сделать там. Т.к. плодить .htaccess, который будет "выдергиваться" при каждом запросе, помоему не очень хорошо.
0
> iconv: недопустимая входная последовательность в позиции 1663
у iconv есть специальная опция "-c" для пропуска подобных символов
у iconv есть специальная опция "-c" для пропуска подобных символов
+1
Всё же, насколько я помню, в оригинале «Лучше день потерять, потом за 5 минут долететь». ;-)
0
НЛО прилетело и опубликовало эту надпись здесь
а для ms windows есть какой-нибуть софт для перекодировки между cp-1251 & utf-8? желательно туда и обратно. может кто-то встречалса из таким... просто заказчик настоятельно хочет, чтоб его сайт в cp1251 виводилса... а я начал делать на unicode...
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
В помощь вебмастеру: Linux bash скрипт для перевода сайта на новую кодировку