Перевод кодировки с UTF-8 на Win-1251

Главные вкладки

Аватар пользователя DiMoN_TD DiMoN_TD 6 ноября 2007 в 21:04

Как можно быстро и безболезненно перевести сайт drupal на кодировку Win-1251..
Только не говорите что это противопоказано и т.д. и т.п., я и сам знаю просто это реально нужно, иначе никак! )
Заранее благодарен!

Комментарии

Аватар пользователя Const Const 6 ноября 2007 в 21:08

выполнить для всех файлов переводов
iconv -f utf-8 -t cp1251 < infile >outfile
и во везде где есть поменять utf-8 на win-1251
По-моему, такой геморрой... база данных -- отдельная песня.

Аватар пользователя beer_destroyer beer_destroyer 6 ноября 2007 в 23:18

Не советую с этим заморачиваться. Да и цель не особо понятна. Если экономия места, то тут много не наиграешь. Если удобство, то UTF читают все.

Короче, овчинка не стоит выделенки.

Аватар пользователя DiMoN_TD DiMoN_TD 7 ноября 2007 в 1:23

исчо раз повторяю.. мне это нужно по другой причине...
в общем заказчику нужен поиск, который подключается по средтсвам яваскрипты к другому сайту, но внешне всё происходит на сайте друпала.. проблема в том, что тот сайт, к которому подрубается скрипт, полностью на кодировке win-1251, и когда результаты поиска выходят на друпале, получается белеберда с кодировкой Sad
вот потому то я нужна вся эта заморочка...
причём в Опере и в ИЕ6 и ИЕ7 всё работает нормально, но в ФФ и в Мозиле кодировка страдает Sad

Аватар пользователя Elijah_ Elijah_ 7 ноября 2007 в 3:51

Я бы сделал дамп базы, полученный 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), чем из-за частной задачи переделывать весь сайт. А как потом апгрейд наводить, к примеру? Опять заморачиваться с переводом в другую кодировку?

Аватар пользователя DiMoN_TD DiMoN_TD 7 ноября 2007 в 12:43

Ну, на самом деле, я создаю сайт с Нуля, потому я могу наверное сразу создать БД в кодировке cp1251... или я ошибаюсь??
А потом на эту БД уже установить Друпал-сайт, потом везде в его файлах (друпаловских) поменять кодировку с utf-8 на win-1251... так впринципе канает??

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 7 ноября 2007 в 12:53

Вы уж заодно напишите с нуля CMS на Java, а потом уже спокойно поменяете ее на Drupal и PHP.... Smile Шутка.

Зачем вам дополнительная морока с перекодировкой? Потом будете маяться с настройкой поиска в Drupal и т.п. проблемами.
Win-1251 - отмирающий местечковый стандарт. Вам правильнее, что-то предпринять по отношению к сторонней базе, перекодировать ее в utf-8.

Аватар пользователя foxweb foxweb 7 ноября 2007 в 16:21

> Поля типа TEXT и BLOB в sql-файле хранятся в шестнадцатиричном виде

Хранятся в 16-ричном? Точно? Может быть отображаются?

Аватар пользователя DiMoN_TD DiMoN_TD 7 ноября 2007 в 13:02

Вам правильнее, что-то предпринять по отношению к сторонней базе, перекодировать ее в utf-8.
Да я бы с удовольствием, только я просто напросто наглым образом спёр этот скрипт, а вот к их файлам у меня доступа нет... скрипт просто тупо подрубается к ним, это всё, что в моих силах сделать Sad
Потому либо оставить так, как есть, либо перекодировать весь свой сайт.....
Не знаю я всё ж таки, стоит ли овчинка выделки....

Аватар пользователя DiMoN_TD DiMoN_TD 7 ноября 2007 в 13:53
<script type="text/javascript" language="javascript">
                <!--
                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>

И как вы мне предлагаете сюда вписать скрипт перекодировки?
Я к сожалению в этом пока чайник Sad

Аватар пользователя foxweb foxweb 7 ноября 2007 в 16:14

а я вот наоборот подумываю, чтоб переходить на Юникод. Последние проекты мои - полностью юникодные. Проблем с кодировками не существует.