Как заставить 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 это вызывает проблемы.
- Для комментирования войдите или зарегистрируйтесь
А почему их надо именно в bash отдавать? А если у меня не Линукс? У меня Линукс, но если у кого-то его нет, что ему делать?
Насколько я понял, дело в том, что где-то скрипт перекодирует всё в юникод. Где находится этот скрипт? Нельзя ли поподробнее на эту тему?
- Для комментирования войдите или зарегистрируйтесь
А почему их надо именно в bash отдавать? А если у меня не Линукс? У меня Линукс, но если у кого-то его нет, что ему делать?
Насколько я понял, дело в том, что где-то скрипт перекодирует всё в юникод. Где находится этот скрипт? Нельзя ли поподробнее на эту тему?
- Для комментирования войдите или зарегистрируйтесь
Если у тебя не Линукс, поставь его себе ;)
Команды выше подходят практически для любого юникса, sh-совместимый синтаксис циклов тоже поддерживается многими шеллами, в крайнем случае можно предварительно явно запустить Bourne Shell:
$ sh
И далее исполнить команды выше.
Рецепт для гордых пользователей операционной системы windows (как пониимаю ты в ней работаешь, если возникают подобные вопросы):
нажать F3 (или чего там надо жать для вызова поиска?) - в параметрах указать поиск в тексте слов UTF-8 (или utf-8) и ограничить зону поиска директорией (и поддиректориями) где лежит Drupal
найдутся все файлы, где есть эта строчка. открывать до посинения notepad, искать строчку в файле и заменять на KOI8-R
сохранять файлы под тем же именем
:)
--
Axel
- Для комментирования войдите или зарегистрируйтесь
Я понял. Просто я не понял, что это за команда и зачем её в bash писать. Теперь ясно.
У меня Линукс (ASPLinux), так что с этим всё в порядке.
Добавлено:
Получилось. Спасибо... Теперь,
у меня всё в нормальной, человеческой кодировке...
- Для комментирования войдите или зарегистрируйтесь
UTF вероятно такая зверская нечеловеческая кодировка, которую никто не понимает :) В RedHat то поддержка unicode всегда была впереди остальных, правда не знаю что с этим в ASP могли сделать...
По-моему, KOI-8 (даже cp1251 здесь будет ни к чему) может понадобится, только если требуется активно интегрировать контент с других сайтов (сбор новостей, который в utf все равно для русских сайтов работает) или брать из какой-нибудь уже работающей в KOI базы данных. Иначе UTF - будет самый "человеческий" для Drupal вариант. Конечно "не нравится" приведенное в одном из сообщений - тоже сильный аргумент ;)
--
Axel
- Для комментирования войдите или зарегистрируйтесь
В АСПЛинукс установлены все русские кодировки (три самые главные - это уж точно), поэтому никаких проблем с русификацией нет... Компания даёт возможность выбора своим пользователям и не решает за них, что лично я считаю правильным.
Например я перешёл недавно (полгода назад) с Windows на ASPLinux, у меня осталось очень много информации (я работал с текстами) в кодировке cp1251. Перекодировать всё это в другие кодировки просто нет смысла, поэтому и локаль у меня стоит тоже cp1251.
И поэтому мне удобнее работать с продуктами, которые поддерживают именно эту кодировку. Я не считаю её лучшей, по сравнению с koi-8, просто мне так удобнее. А utf-8 мне просто не нравится. Не знаю, почему все пищвт от восторга, но мне она представляется недружелюбной по отношению к конкретному пользователю. И даже вот те же неудобства в названиях тем, которые видны на этом форуме - это показывают.
- Для комментирования войдите или зарегистрируйтесь
Проблемы с виндой у юниксойдов были давно. Для этого был создан cygwin (cygwin.org) там эта команда выполниться прекрасна. Да и не придётся тебе ставить линукс.
Под FreeBSD данно творение работает.
Только вот не вижу смысла отказываться от UTF
- Для комментирования войдите или зарегистрируйтесь
Я как раз не вижу смысла в жёсткой заточке на UTF-8... Можно ведь прекрасно сделать и добавить поддержку других кодировок... Но почему-то присутствует какая-то нездоровая религиозность (и это не только Drupal'a касается, например, единственный дистрибутив Linux, который "из коробки" поддерживает (имеется ввиду интерфейс) все три самые популярные кодировки (utf-8, cp1251, koi-8) - это АСПЛинукс, остальные же, "болеют" религиозностью koi-8 или (именно "или", а не "и") utf-8)...
- Для комментирования войдите или зарегистрируйтесь
Вообще-то в линуксовых дистрах жесткой привязки к кодировке нет обычно - можно выбирать. Хотя разные кодировки могут поддерживаться с разной степенью удобства. Я вот долго работал с ALT Linux и всегда держал там cp1251 - на работе так было удобней. В Debian сейчас KOI-8 (там кстати забавно, cp1251 вовсе нету), отдельные проги запускаю под UTF-8. Не вижу просто смысла все переводить на UTF-8 - и так работает. А в ASP Linux нормально UTF поддерживается только по причине его нормальной поддержки в RedHat. Imho, заслуг ASP в этом деле - никаких.
--
Axel
- Для комментирования войдите или зарегистрируйтесь
Что АСПЛинукс не просто "поддерживает кодировки", понятно, что всё можно сделать самому и все русские кодировки читать можно в любом дистрибутиве. Дело в том, что только в АСПЛинукс можно выбрать (при установке) какую использовать локаль "по умолчанию"... (при этом поддержка остальных локалей точно также остаётся). Кстати, я считаю достоинством то, что АСПЛинукс совместим с РедХат, в отличие от некоторых (не будем показывать пальцами), которые "сами с усами"...
Имхо, в Линукс, главное - это совместимость и те, кто её нарушают - идиоты...
- Для комментирования войдите или зарегистрируйтесь
Кстати, я где-то видел sh под windows...
Искать в google по слову UnixTools если чего-нибудь не путаю.
--
USU-Lug http://usu-lug.org.ru
- Для комментирования войдите или зарегистрируйтесь




Комментарии