On 2003.06.25 at 16:14:35 +0500, BeerBong wrote: > Доброе время суток! > > Есть SQL cервер который хостит mySQL, Oracle & Postgres базы. С ними > работают WEB сервер, на сайтах везде по умолчанию cp1251, соответственно в > базах везде по умолчанию тоже cp1251. И всех это устраивало до того момента > пока я в качестве своей OS не поставил Debian. (Неделю поскрипел зубами с > конфигами fvwm и добился хорошего внешнего вида и удобства -- теперь > практически всем доволен) > > В качестве локальной кодировки у себя прописал koi8. При коннекте к mySQL > из терминала получаем БНОПНЮ. Я знаю что есть перекодировка (сервер)koi8- > >cp1251(клиент), знаю что можно свою сделать, но не хочется трогать
Все приличные базы данных (по-моему, mysql к ним относится в данном контексте) умеют работать с произвольным сочетанием кодировки сервера и кодировки клиента. Для Oracle нужно установить переменную среды NLS_LANG=RUSSIAN_CIS.CL8KOI8R, для Postgres PGCLIENTENCODING=KOI8 При условии что сервер знает, что у него в базе кодировка 1251, все будет удобочитаемо. Как для mysql - не знаю, так как никогд им не пользовался. > продакшн сервер ради этого (хотя придется если других вариантов нет). Что > делать? Осознать, что те утилиты, которыми ты работаешь с базами из командной строки - это тоже клиенты. > Кроме того еще не дошел до работы с текстовыми файлами в cp1251 кодировке. > Еще не разбирался, хотя Cyrillic HOWTO просматривал, но не сложилось пока в > голове четкого варианта решения. Для работы с текстовыми файлами обычно применяется текстовый редактор. Текстовых редакторов бывает два - vim и emacs. Оба умеют понимать, что кодировка файла может отличаться от кодировки терминала. > Предпочитаю vim, MCedit не хочу, монстров тоже. Как сделать поудобнее и У вас очень правильный образ мыслей, сэр В vim указание кодировки при загрузке текстового файла делается посредством ++enc=что-надо в команде e или split. У меня для выбора кодировки файла служат такие строчки в .vimrc: "Меню кодировок set wildmenu set wcm=<Tab> menu Encoding.koi8-r :e ++enc=koi8-r<CR> menu Encoding.windows-1251 :e ++enc=cp1251<CR> menu Encoding.ibm-866 :e ++enc=ibm866<CR> menu Encoding.utf-8 :e ++enc=utf-8 <CR> map <F8> :emenu Encoding.<TAB> Соответственно, если загрузив файл, видишь, что он не читается, жмешь <F8> и получаешь меню. >попроще работу с редактированием файлов в разных кодировках? > > Виктор Вагнер писал, что прописал в меню несколько терминалов с разными > кодировками, а как в таком случае переключается раскладка? > Никак. А зачем она должна как-то переключаться? Раскладка работает на уровне X-овых keysym, и русское А это всегда Cyrillic-A. А за то, чтобы оно превратилось в правильный 8-битный (или не-8-битный, если это utf-8) код внутри приложения, отвечает локаль данного приложения. Данным называется X-овое приложение. То есть если мы запускаем vim в xterm, то локаль должна быть выставлена именно у xterm. Если gvim - то у самого gvim.