Как заставить Drupal работать не в UTF-8?

Прислано: axel

сб, 06/03/2004 - 14:10

Другие статьи по теме:

Даже не буду спрашивать, зачем вам это понадобилось :) Никаких особых преимуществ от использования национальной кодировки вы не получите, но проблемы обмена данными с другими сайтами на Drupal огребете. Но раз уж так хочется, то зайдите в корневую директорию, с распакованными исходниками Drupal и выполните следующую строку команд:

for i in `grep -rl utf-8 *`; do sed s/utf-8/koi8-r/ $i >$i.tmp && mv -f $i.tmp $i; done;

И еще разок в таком варианте:

for i in `grep -rl UTF-8 *`; do sed s/UTF-8/KOI8-R/ $i >$i.tmp && mv -f $i.tmp $i; done;

Теперь ваш Drupal будет хранить тексты и отображать странички в KOI8-R. Делать это требуется на чистом сайте, если что-то уже хранится в базе на русском языке в UTF-8, оно так в этой кодировке и останется.



Проверено в Debian GNU/Linux под ZShell, также будет работать в bash, sh. Если используете другой шелл, с отличным от Bourne Shell синтаксисом, запустите предварительно:

$ sh

Затем можно исполнять команды указанные выше. За все юниксы сказать не берусь, но в системах использующих утилиты проекта GNU команды должна работать без изменений.



Не гарантирую, что сайт после этого будет работать без глюков, но работать будет - я проверял. Вероятно будут замороки в syndication новостей, там где идет перекодировка в utf (тупо заменяясь после исполнения команды выше на koi8, от чего ей легче не станет). Тут уж сами разбирайтесь, все равно многие сайты отдают новости в KOI8-R и в работающем в UTF-8 Drupal это вызывает проблемы.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано B.X в пн, 08/03/2004 - 21:42.

А почему их надо именно в bash отдавать? А если у меня не Линукс? У меня Линукс, но если у кого-то его нет, что ему делать?
Насколько я понял, дело в том, что где-то скрипт перекодирует всё в юникод. Где находится этот скрипт? Нельзя ли поподробнее на эту тему?


Опубликовано B.X в пн, 08/03/2004 - 21:42.

А почему их надо именно в bash отдавать? А если у меня не Линукс? У меня Линукс, но если у кого-то его нет, что ему делать?
Насколько я понял, дело в том, что где-то скрипт перекодирует всё в юникод. Где находится этот скрипт? Нельзя ли поподробнее на эту тему?


Опубликовано axel в вт, 09/03/2004 - 05:30.

Если у тебя не Линукс, поставь его себе ;)
Команды выше подходят практически для любого юникса, sh-совместимый синтаксис циклов тоже поддерживается многими шеллами, в крайнем случае можно предварительно явно запустить Bourne Shell:

$ sh

И далее исполнить команды выше.

Рецепт для гордых пользователей операционной системы windows (как пониимаю ты в ней работаешь, если возникают подобные вопросы):

нажать F3 (или чего там надо жать для вызова поиска?) - в параметрах указать поиск в тексте слов UTF-8 (или utf-8) и ограничить зону поиска директорией (и поддиректориями) где лежит Drupal

найдутся все файлы, где есть эта строчка. открывать до посинения notepad, искать строчку в файле и заменять на KOI8-R

сохранять файлы под тем же именем

:)
--
Axel


Опубликовано B.X в ср, 10/03/2004 - 21:07.

Я понял. Просто я не понял, что это за команда и зачем её в bash писать. Теперь ясно.

У меня Линукс (ASPLinux), так что с этим всё в порядке.
Добавлено:
Получилось. Спасибо... Теперь,
у меня всё в нормальной, человеческой кодировке...


Опубликовано axel в чт, 11/03/2004 - 05:45.

UTF вероятно такая зверская нечеловеческая кодировка, которую никто не понимает :) В RedHat то поддержка unicode всегда была впереди остальных, правда не знаю что с этим в ASP могли сделать...

По-моему, KOI-8 (даже cp1251 здесь будет ни к чему) может понадобится, только если требуется активно интегрировать контент с других сайтов (сбор новостей, который в utf все равно для русских сайтов работает) или брать из какой-нибудь уже работающей в KOI базы данных. Иначе UTF - будет самый "человеческий" для Drupal вариант. Конечно "не нравится" приведенное в одном из сообщений - тоже сильный аргумент ;)

--
Axel


Опубликовано B.X в чт, 11/03/2004 - 18:05.

В АСПЛинукс установлены все русские кодировки (три самые главные - это уж точно), поэтому никаких проблем с русификацией нет... Компания даёт возможность выбора своим пользователям и не решает за них, что лично я считаю правильным.

Например я перешёл недавно (полгода назад) с Windows на ASPLinux, у меня осталось очень много информации (я работал с текстами) в кодировке cp1251. Перекодировать всё это в другие кодировки просто нет смысла, поэтому и локаль у меня стоит тоже cp1251.

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


Опубликовано Гость в пт, 13/08/2004 - 07:29.

Проблемы с виндой у юниксойдов были давно. Для этого был создан cygwin (cygwin.org) там эта команда выполниться прекрасна. Да и не придётся тебе ставить линукс.

Под FreeBSD данно творение работает.

Только вот не вижу смысла отказываться от UTF


Опубликовано B.X в пт, 13/08/2004 - 15:58.

Я как раз не вижу смысла в жёсткой заточке на UTF-8... Можно ведь прекрасно сделать и добавить поддержку других кодировок... Но почему-то присутствует какая-то нездоровая религиозность (и это не только Drupal'a касается, например, единственный дистрибутив Linux, который "из коробки" поддерживает (имеется ввиду интерфейс) все три самые популярные кодировки (utf-8, cp1251, koi-8) - это АСПЛинукс, остальные же, "болеют" религиозностью koi-8 или (именно "или", а не "и") utf-8)...


Опубликовано axel в чт, 19/08/2004 - 12:18.

Вообще-то в линуксовых дистрах жесткой привязки к кодировке нет обычно - можно выбирать. Хотя разные кодировки могут поддерживаться с разной степенью удобства. Я вот долго работал с ALT Linux и всегда держал там cp1251 - на работе так было удобней. В Debian сейчас KOI-8 (там кстати забавно, cp1251 вовсе нету), отдельные проги запускаю под UTF-8. Не вижу просто смысла все переводить на UTF-8 - и так работает. А в ASP Linux нормально UTF поддерживается только по причине его нормальной поддержки в RedHat. Imho, заслуг ASP в этом деле - никаких.

--
Axel


Опубликовано B.X в чт, 19/08/2004 - 16:49.

Что АСПЛинукс не просто "поддерживает кодировки", понятно, что всё можно сделать самому и все русские кодировки читать можно в любом дистрибутиве. Дело в том, что только в АСПЛинукс можно выбрать (при установке) какую использовать локаль "по умолчанию"... (при этом поддержка остальных локалей точно также остаётся). Кстати, я считаю достоинством то, что АСПЛинукс совместим с РедХат, в отличие от некоторых (не будем показывать пальцами), которые "сами с усами"...
Имхо, в Линукс, главное - это совместимость и те, кто её нарушают - идиоты...


Опубликовано Nick в вс, 27/03/2005 - 01:07.

Кстати, я где-то видел sh под windows...
Искать в google по слову UnixTools если чего-нибудь не путаю.

--
USU-Lug http://usu-lug.org.ru