Как можно быстро и безболезненно перевести сайт drupal на кодировку Win-1251..
Только не говорите что это противопоказано и т.д. и т.п., я и сам знаю просто это реально нужно, иначе никак! )
Заранее благодарен!
выполнить для всех файлов переводов
iconv -f utf-8 -t cp1251 < infile >outfile
и во везде где есть поменять utf-8 на win-1251
По-моему, такой геморрой... база данных -- отдельная песня.
исчо раз повторяю.. мне это нужно по другой причине...
в общем заказчику нужен поиск, который подключается по средтсвам яваскрипты к другому сайту, но внешне всё происходит на сайте друпала.. проблема в том, что тот сайт, к которому подрубается скрипт, полностью на кодировке win-1251, и когда результаты поиска выходят на друпале, получается белеберда с кодировкой
вот потому то я нужна вся эта заморочка...
причём в Опере и в ИЕ6 и ИЕ7 всё работает нормально, но в ФФ и в Мозиле кодировка страдает
Я бы сделал дамп базы, полученный sql-файл превел бы в кодировку cp1251, потом открыл бы его в любом текстовом редакторе и использовал бы команду "Заменить всё" с utf8 на cp1251. А затем бы восстановил данные из sql-файла обратно на сервер (если восстанавливать через GUI-шный MySQL Administrator - не забыть в поле File Charset выбрать кодировку cp1251).
Я был неправ. Поля типа TEXT и BLOB в sql-файле хранятся в шестнадцатиричном виде. Простой перевод файла из одной кодировки в другую ничего не даст.
Вообще, тогда я бы создал еще одну базу данных с такими же таблицами, но DEFAULT CHARSET=cp1251 (почистил бы sql-файл, оставив только операторы CREATE TABLE), а затем использовал бы серию запросов с функцией CONVERT(), позволяющей на лету переводить данные из одной кодировки в другую, чтобы запросами все данные из целевых таблиц перекидать в таблицы назначения: http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html.
Вообще, мне кажется, что все равно проще данные, полученные при поиске на другом сайте, перевести в utf-8 (та же php-функция iconv), чем из-за частной задачи переделывать весь сайт. А как потом апгрейд наводить, к примеру? Опять заморачиваться с переводом в другую кодировку?
Ну, на самом деле, я создаю сайт с Нуля, потому я могу наверное сразу создать БД в кодировке cp1251... или я ошибаюсь??
А потом на эту БД уже установить Друпал-сайт, потом везде в его файлах (друпаловских) поменять кодировку с utf-8 на win-1251... так впринципе канает??
Вы уж заодно напишите с нуля CMS на Java, а потом уже спокойно поменяете ее на Drupal и PHP.... Шутка.
Зачем вам дополнительная морока с перекодировкой? Потом будете маяться с настройкой поиска в Drupal и т.п. проблемами.
Win-1251 - отмирающий местечковый стандарт. Вам правильнее, что-то предпринять по отношению к сторонней базе, перекодировать ее в utf-8.
Вам правильнее, что-то предпринять по отношению к сторонней базе, перекодировать ее в utf-8.
Да я бы с удовольствием, только я просто напросто наглым образом спёр этот скрипт, а вот к их файлам у меня доступа нет... скрипт просто тупо подрубается к ним, это всё, что в моих силах сделать
Потому либо оставить так, как есть, либо перекодировать весь свой сайт.....
Не знаю я всё ж таки, стоит ли овчинка выделки....
Комментарии
выполнить для всех файлов переводов
iconv -f utf-8 -t cp1251 < infile >outfile
и во везде где есть поменять utf-8 на win-1251
По-моему, такой геморрой... база данных -- отдельная песня.
а БД как можно перевести??
Не советую с этим заморачиваться. Да и цель не особо понятна. Если экономия места, то тут много не наиграешь. Если удобство, то UTF читают все.
Короче, овчинка не стоит выделенки.
исчо раз повторяю.. мне это нужно по другой причине...
в общем заказчику нужен поиск, который подключается по средтсвам яваскрипты к другому сайту, но внешне всё происходит на сайте друпала.. проблема в том, что тот сайт, к которому подрубается скрипт, полностью на кодировке win-1251, и когда результаты поиска выходят на друпале, получается белеберда с кодировкой
вот потому то я нужна вся эта заморочка...
причём в Опере и в ИЕ6 и ИЕ7 всё работает нормально, но в ФФ и в Мозиле кодировка страдает
Я бы сделал дамп базы, полученный sql-файл превел бы в кодировку cp1251, потом открыл бы его в любом текстовом редакторе и использовал бы команду "Заменить всё" с utf8 на cp1251. А затем бы восстановил данные из sql-файла обратно на сервер (если восстанавливать через GUI-шный MySQL Administrator - не забыть в поле File Charset выбрать кодировку cp1251).Я был неправ. Поля типа TEXT и BLOB в sql-файле хранятся в шестнадцатиричном виде. Простой перевод файла из одной кодировки в другую ничего не даст.
Вообще, тогда я бы создал еще одну базу данных с такими же таблицами, но DEFAULT CHARSET=cp1251 (почистил бы sql-файл, оставив только операторы CREATE TABLE), а затем использовал бы серию запросов с функцией CONVERT(), позволяющей на лету переводить данные из одной кодировки в другую, чтобы запросами все данные из целевых таблиц перекидать в таблицы назначения: http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html.
Вообще, мне кажется, что все равно проще данные, полученные при поиске на другом сайте, перевести в utf-8 (та же php-функция iconv), чем из-за частной задачи переделывать весь сайт. А как потом апгрейд наводить, к примеру? Опять заморачиваться с переводом в другую кодировку?
Ну, на самом деле, я создаю сайт с Нуля, потому я могу наверное сразу создать БД в кодировке cp1251... или я ошибаюсь??
А потом на эту БД уже установить Друпал-сайт, потом везде в его файлах (друпаловских) поменять кодировку с utf-8 на win-1251... так впринципе канает??
Вы уж заодно напишите с нуля CMS на Java, а потом уже спокойно поменяете ее на Drupal и PHP.... Шутка.
Зачем вам дополнительная морока с перекодировкой? Потом будете маяться с настройкой поиска в Drupal и т.п. проблемами.
Win-1251 - отмирающий местечковый стандарт. Вам правильнее, что-то предпринять по отношению к сторонней базе, перекодировать ее в utf-8.
> Поля типа TEXT и BLOB в sql-файле хранятся в шестнадцатиричном виде
Хранятся в 16-ричном? Точно? Может быть отображаются?
Без сомнения, отображаются
Может, проще средствами php перевести полученные данные из cp1251 в utf8?
Уху, спасибо, попробую завтра наверное
Вам правильнее, что-то предпринять по отношению к сторонней базе, перекодировать ее в utf-8.
Да я бы с удовольствием, только я просто напросто наглым образом спёр этот скрипт, а вот к их файлам у меня доступа нет... скрипт просто тупо подрубается к ним, это всё, что в моих силах сделать
Потому либо оставить так, как есть, либо перекодировать весь свой сайт.....
Не знаю я всё ж таки, стоит ли овчинка выделки....
Допишите в скрипт перекодировку в utf-8.
<!--
var url = "crashescars.com";
document.write("<sc"+"ript src='http://"+url+"/_modules/_ccrashescars/ext.php?mainame="+location.host+"&"+location.search.substring(1)+"'' type='text/javascript' language='javascript'></sc"+"ript>\n");
//-->
</script>
И как вы мне предлагаете сюда вписать скрипт перекодировки?
Я к сожалению в этом пока чайник
а я вот наоборот подумываю, чтоб переходить на Юникод. Последние проекты мои - полностью юникодные. Проблем с кодировками не существует.
Мне тоже кажется, что надо переходить на юникод.
Ща сам мозги парю...