Проблема с кодировкой

Статус
В этой теме нельзя размещать новые ответы.

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья. Помогите, пожалуйста, решить проблему.
Есть сайт, на котором стоит кодировка windows-1251.
Зарегистрировался русский, который живёт в Италии(Риме)..
Все текстовые данные от него (даже input type="hidden") вносятся в БД в другой кодировке..
Подскажите, пожалуйста, какие есть решения данной проблемы.. Заранее спасибо..
P.S. iconv, походу, неуместна..
 
Возможно глюки у него на компе.
А вообще переводи сайт на UTF...
 
a_n_d_y, а это проблематично?
Подскажи, пожалуйста, алгоритм действий?
И ещё: какие самые яркие проблемы я буду иметь с кодировкой windows-1251?
 
a_n_d_y, а это проблематично?
Подскажи, пожалуйста, алгоритм действий?
И ещё: какие самые яркие проблемы я буду иметь с кодировкой windows-1251?
Да не сложно. Делаем дамп базы, создаем новую со сравнением utf8_general_ci, восстанавливаем дамп с помощью sypex damper принудительно перекодируя в utf. Далее перекодируем все файлы сайта в utf для этого есть куча утилит, гугли в сторону пакетной перекодировки. Ну и последнее меняем в метатегах windows-1251 на utf-8. Ну и в .htaccess прописываем AddDefaultCharset utf-8
 
Благодарю.. А какие самые яркие проблемы я буду иметь с кодировкой windows-1251 в будущем?
 
В принципе никаких. Но если начнешь с заморачиваться с ajax и json то наткнешься на грабли, когда данные на русском обрабатываются только в utf...
 
Легче будет перекодировать БД в 1251
 
и не только БД, весь сайт советую перевести на UTF-8. WIN-1251 будет работать только у тех, у кого стоит локализация, то есть грубо говоря в России в Русской винде есть локализация 1251, а в Германии уже нет. UTF-8 это универсальная кодировка, которая будет одинакого работать везде. И еще, ели у чела не стоит 1251 локализации в системе к примеру, то он вообще вместо нормальных букв будет видеть кракозябры.
 
Кроме описанной конвертации файлов и данных для корректной работы нужно еще изменить некоторые функции:
strlen → mb_strlen
strtolower → mb_strtolower

и тд.
 
Кроме описанной конвертации файлов и данных для корректной работы нужно еще изменить некоторые функции:
strlen → mb_strlen
strtolower → mb_strtolower

и тд.
В таком случае, не плохо было бы упомянуть, что поддержка mb_* по умолчанию чаще всего выключена и её нужно включать отдельно. Т.е. либо просить хостера, либо ковырять конфиг. Если ни один из вариантов не помог, можно просто написать костыли вроде этого:
PHP:
if (!function_exists('mb_strlen'))
{
function mb_strlen($str)
{
return strlen(iconv("UTF-8","cp1251", $str));
}
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху