Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] перекодировка сайта с cp1251 в utf8

Ответить
Настройки темы
[решено] перекодировка сайта с cp1251 в utf8

Пользователь


Сообщения: 67
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


вопрос наверняка не нов:
есть сайт - всё в кодировке cp1251
необходимо переконвертить его в utf8

вот как я это себе вижу
1. переконвертировать все файлы - это просто: редактором (я пользуюсь PHP Expert Editor)
2. переконвертация БД mysql - как?
3. замена html и xml заголовков с cp1251 на utf-8 (для браузеров) - это тоже не вызовет проблем
4. изменение обработки строк в javascript`ах - для Ajax и проч. js

с чем я еще могу столкнуться?
сайт работающий и не хотелось бы надолго прекращать его работу
т.е. статичные данные (п.п. 1, 3, 4) я исправлю offline, а как выполнить изменение динамических данных (п. 2) быстро и без последствий?

Отправлено: 14:19, 08-07-2007

 

Старожил


Сообщения: 236
Благодарности: 0

Профиль | Отправить PM | Цитировать


VeshchiyOleg с помощью дублера например, делаете копию сайта изменяете ее, после тестирования и работоспособности копией меняете реальный сайт

Отправлено: 19:12, 08-07-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 67
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


дублер это само собой
как переконвертировать ДАННЫЕ mysql?

Отправлено: 21:40, 08-07-2007 | #3


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


VeshchiyOleg
начните с этой статьи. Только не переписываем оригинальные данные !!! Сначало всё в копию записываем.

Дальше в гугле можно искать по "mysql migrate utf8" или чтото подобное

-------
Fortes fortuna adiuvat


Отправлено: 21:50, 08-07-2007 | #4


Пользователь


Сообщения: 67
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


не совсем то.
мне мой админ потом разъяснил, как правильно:
Код: Выделить весь код
shell> mysqldump --default-character-set=cp1251 db_name >file_name.sql
shell>iconv -f cp1251 -t utf-8 file_name.sql > new_file_name.sql
shell> mysql
mysql> create datatabase newdb;
mysql> exit
shell> mysql --default-character-set=utf-8 newdb < new_file_name.sql
но...
iconv не работает по каким-то причинам...
говорит, что не может - якобы там, внутри, есть что-то, что не поддается перекодированию
в 400 Мб -ном файле найти это практически нереально
или для iconv'а он слишком велик...

короче, я сейчас обошелся
PHP код: Выделить весь код

@mysql_query('SET NAMES utf8'); 


сразу после mysql_connect
работает, но это решение мне как-то не очень нравится...

Отправлено: 15:36, 11-07-2007 | #5


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата VeshchiyOleg:
короче, я сейчас обошелся PHP код: @mysql_query('SET NAMES utf8'); сразу после mysql_connect
Я всегда этим пользуюсь - и никаких проблем

-------
Fortes fortuna adiuvat


Отправлено: 15:58, 11-07-2007 | #6


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Аналогом @mysql_query('SET NAMES utf8'); может служить "default-character-set=cp1251" в секциях [client] и [mysqld] конфигурационного файла сервера БД MySQL. Разница тут в том, что второй вариант - глобальный (действует на все базы и на все соединения и выборки), но выполняется лишь однажды, а второй каждый запуск скрипта, но более гибок когда существуют базы с разными кодировками. В общем и целом оба варианта жизнеспособны, имхо, не стоит коситься ни на один из них.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 18:47, 17-07-2007 | #7

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Цитата VeshchiyOleg:
iconv не работает по каким-то причинам... говорит, что не может - якобы там, внутри, есть что-то, что не поддается перекодированию
Совершенно нормальная ситуация при перекодировании всяких служебных значков. SET NAMES с default-character-set при этом отрабатыват под mysql. А вот при переносе базы под postgresql могут быть проблемы (приходится писать скрипт для отлова всего этого безобразия)

Отправлено: 13:18, 18-07-2007 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] перекодировка сайта с cp1251 в utf8

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Тип char, определение кодировки (UTF8 или ANSI) EvgeniyQQQ Программирование и базы данных 4 30-03-2013 01:06
MySQL - [решено] [mysqldump] дамп базы в utf8 Ramzes_ Программирование и базы данных 3 20-10-2008 13:25
[решено] кодировка utf8 для базы dima1981 Вебмастеру 34 09-08-2008 09:23
Delphi - Перевод из Tstring в UTF8 Mixalbl4 Программирование и базы данных 5 30-07-2008 14:25
gqview и локаль cp1251 byte Общий по FreeBSD 8 07-04-2005 08:21




 
Переход