Страница 1 из 2

UTF-8

Добавлено: 2009-10-03 13:29:57
hanggard
Добрый ${time}, уважаемые. Вопрос у меня наверное, простой, но животрепещущий: хочется мне сменить системную локаль насовсем. Да не на пресловутые кои und 1251, а на UTF-8, за которым будущее. Здесь есть несколько путей:
1) http://www.lissyara.su/?id=1169 - дана инструкция по смене локали, НО на 1251. Можно подогнать под Юникод, но не хватает некоторых файлов
2) http://www.opennet.ru/tips/info/1448.shtml, но тут это выглядит заплаткой, и недостойно называться мужественным поступком.
3) http://www.opennet.ru/tips/info/1785.shtml - тут описан более извращенный способ навешивания заплаток. Однако, это все хоть чуть-чуть, но сказывается на производительности, так что не хотелось бы на этом заостряться. Собственно, дано:
я пробовал запускать xterm с локалью ru_RU.UTF-8 и юникодными шрифтами. Создал папку с файлами-пустышками (все на русском языке), отконвертировал их названия в юникодные

Код: Выделить всё

convmv -f koi8-r -t UTF-8 путь_к_разделу/* --notest -r
при листинге файлов xterm повел себя хорошо: русские названия показал по-русски. Но печатать он НАОТРЕЗ отказывается, символы просто не набирются. Проблем две:
1)

Код: Выделить всё

root@hanggard:/usr/home/hanggard# ll /usr/share/locale/ru_RU.UTF-8/LC_COLLATE
lrwxrwxrwx  1 root  wheel  28 29 сен 20:55 /usr/share/locale/ru_RU.UTF-8/LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE

То есть часть Уникода совсем даже не русская.
2)

Код: Выделить всё

root@hanggard:/usr/home/hanggard# ll /usr/share/syscons/keymaps/ | grep -i ru
-r--r--r--  1 root  wheel  16237 15 июл  2008 ru.cp866.kbd
-r--r--r--  1 root  wheel  16236 15 июл  2008 ru.iso5.kbd
-r--r--r--  1 root  wheel  16240 15 июл  2008 ru.koi8-r.kbd
-r--r--r--  1 root  wheel  16246 15 июл  2008 ru.koi8-r.shift.kbd
-r--r--r--  1 root  wheel  16240 15 июл  2008 ru.koi8-r.win.kbd
Нет русского файла клавиатуры для Unicode, что, собственно, не позоляло мне печатать.
Собственно, вопрос: Какие еще есть пути смены локали, достойные не младенца, но мужа? Или как мне найти/получить/сгенерить недостающие файлы?

Re: UTF-8

Добавлено: 2009-10-03 13:38:13
hanggard
Еще вот тут нас немного свет озаряет, что локаль можно собрать самому. Но такой программы я не нашел.
http://linuxportal.ru/entry.php/34_0_3_0_C/

Re: UTF-8

Добавлено: 2009-10-03 13:49:05
hanggard
А так же, нашел это http://posix.ru/system/syscons_ru/. Там написано: Можно видеть, что в приведенном списке локаль UFT-8 не наблюдается. И действительно, в штатном комплекте FreeBSD ее нет. Однако при желании несколько приблизиться к светлому будущему (недостижимому, как коммунизм в одной отдельно взятой стране) - ее можно установить из портов (/usr/ports/misc/utf8locale), после чего в выводе команды locale -a добавится строка ru_RU.UTF-8. Впрочем, этой теме посвящена специальная статья. Специальная статья начинается с цифр 404 :(. У себя в портах я сделал

Код: Выделить всё

root@hanggard:/usr/home/hanggard# make -C /usr/ports/ search name=utf8
Port:   misc/utf8locale
Moved:
Date:   2009-01-05
Reason: Part of the base system since FreeBSD 5.3
Локаль можно найти через search в портах. На самом деле, там пусто:

Код: Выделить всё

root@hanggard:/usr/home/hanggard# whereis utf8locale
utf8locale:
root@hanggard:/usr/home/hanggard# cd /usr/ports/misc/utf8locale
/usr/ports/misc/utf8locale: No such file or directory.
Щас попробую обновить порты, но не факт, что от этого что-то изменится: я в жизни ничего не удалял оттуда.

Re: UTF-8

Добавлено: 2009-10-03 13:57:36
paradox
jfbterm поставь
настрой и радуйся

Re: UTF-8

Добавлено: 2009-10-03 14:00:27
hanggard
З.Ы. У меня на ноуте установлен Мак 10.5.7 Лео, если кто не в курсе, то любая Mac OS X на ядре FreeBSD. Но и там с Юникодом такая белиберда

Код: Выделить всё

lrwxrwxrwx  1 root  wheel  28 29 сен 20:55 /usr/share/locale/ru_RU.UTF-8/LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE
хотя там системная локаль как раз UTF-8. Так что вроде решаем, что LC_COLLATE нам не нужно трогать, старое сойдет. А как быть с остальным?

Re: UTF-8

Добавлено: 2009-10-03 14:04:32
paradox
З.Ы. У меня на ноуте установлен Мак 10.5.7 Лео, если кто не в курсе, то любая Mac OS X на ядре FreeBSD. Но и там с Юникодом такая белиберда
для тех кто в танке
ядра бсд в макоси нет
lrwxrwxrwx 1 root wheel 28 29 сен 20:55 /usr/share/locale/ru_RU.UTF-8/LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE
хотя там системная локаль как раз UTF-8. Так что вроде решаем, что LC_COLLATE нам не нужно трогать, старое сойдет. А как быть с остальным?
может хватит выдумывать и пойдите почитайте полноcтью те ссылки которые вы дали

Re: UTF-8

Добавлено: 2009-10-03 14:26:27
Гость
проблемы с юникодом могут быть только в прямой консоли (syscons), коя цепляется к vga и kbd. Во всех остальных случаях проблем быть не должно уже как несколько лет. Фряшная локально давно умеет юникод (начиная с 5.x, кажется).

Если у тебя не получается набрать юникодом в xterm'е, то это лично твои кривые руки из-коих у тя либо кривые ресурсы в ~/.Xdefaults для XTerm'а или раскладка не так настроена. Если проблема только с xterm'ом, то попробуй запустить его с опцией -lc.

Re: UTF-8

Добавлено: 2009-10-03 14:33:33
Гость
кстати, о каком релизе идет речь? Надеюсь не об антиквариате (4.x, 5.x)?

Re: UTF-8

Добавлено: 2009-10-03 15:33:15
hanggard

Код: Выделить всё

root@hanggard:/usr/home/hanggard# uname -v
FreeBSD 7.0-STABLE-200807 #3: Thu Oct  1 13:10:32 NOVST 2009     root@hanggard.com:/usr/obj/usr/src/sys/UnicronII

Re: UTF-8

Добавлено: 2009-10-03 17:32:51
cloudsv
sn9.png
при смене локали не вводятся русские букофки а только "\364\342\342"

Код: Выделить всё

FreeBSD 7.2-RELEASE
kde4-4.3.1 

Re: UTF-8

Добавлено: 2009-10-03 17:38:01
hanggard
У меня не KDE. Считаю, что кеды ставить на сервер неразумно, это не воркстанция. У меня там IceWM, и xterm хорговский. Русский у меня отображается, но не вводится. Судя по всему, ни одного символа. А вообще, это в Konsole настраивается, по-моему. И терминал там в самой новой версии 4 KDE VT100 (по-моему) убрали. У меня на ноуте (тоже фряха 7.0) 4е кеды, но старые, почти год назад ставил. Там терминал VT100 еще есть и со вводом проблем не возникает. Так что Вы сначала сделайте Alt+F2 (или если перенастроили, то другое) и напишите xterm. Xterm не врет в этом плане, а консоль - штука графическая, но ее настраивать надо, чтобы работала.

Re: UTF-8

Добавлено: 2009-10-03 17:47:06
zingel
кеды ставить на сервер
а зачем?

Re: UTF-8

Добавлено: 2009-10-03 17:54:51
cloudsv
hanggard писал(а):У меня не KDE. Считаю, что кеды ставить на сервер неразумно, это не воркстанция. У меня там IceWM, и xterm хорговский. Русский у меня отображается, но не вводится. Судя по всему, ни одного символа. А вообще, это в Konsole настраивается, по-моему. И терминал там в самой новой версии 4 KDE VT100 (по-моему) убрали. У меня на ноуте (тоже фряха 7.0) 4е кеды, но старые, почти год назад ставил. Там терминал VT100 еще есть и со вводом проблем не возникает. Так что Вы сначала сделайте Alt+F2 (или если перенастроили, то другое) и напишите xterm. Xterm не врет в этом плане, а консоль - штука графическая, но ее настраивать надо, чтобы работала.
присмене локали и запуске xterm
пишет читатет по русски
sn9.png
sn9.png (6.91 КБ) 1735 просмотров
и призапуске konsole с локалью utf8 все тож прекрасно читается и пишется
sn9_.png
p.s. меня cp1251 устраивает, эт я так, тему поддержать

Re: UTF-8

Добавлено: 2009-10-03 17:57:39
hanggard
Вывод: чени консоль :) терминал VT100 - наше все)

Re: UTF-8

Добавлено: 2009-10-03 18:00:37
cloudsv
hanggard писал(а):Вывод: чени консоль :) терминал VT100 - наше все)
ченить нечего все работает прекрасно

Re: UTF-8

Добавлено: 2009-10-03 18:01:25
paradox
и токо у нормальных людей поддерживаеться все

Re: UTF-8

Добавлено: 2009-10-03 20:06:04
hanggard
И еще нормальные люди уже выучили *ться и *тся. Тема не о криворукости кого-то там (я ничего сам не правил, чтобы оно слетело, и не в первый раз под фрей работаю, так что моих кривых рук - минимум), а о том, какие есть способы перехода с одной локали на другую. И еще не меряемся пиписьками по поводу того, какая кодировка лучше, холивары будьте добры не на Лисярином сайте. Повторяю вопрос:
дано koi8-r в живом виде и xterm, в который этот кои "с конвейера" не внедрен. Еще дано - вечный секс с именами файлов в серверах smb и proftpd. Решено: внедрить кодировку UTF-8 на локальную машину, переписав имена файлов. Отсюда идет второе действие: терминалы не будут воспринимать Юникод с любовью, пока их на него не тыкнешь носом и не скажешь "фу, свой!" В статьях, которые я читал, это вводится как раз только на терминалы под иксами или под ssh (по второму я уже начал сомневаться, пните, если не прав). Ну, по крайней мере, ssh-клиент можно настроить понимать эту кодировку. А вот так называемая syscons, которую я ОЧЕНЬ не хочу обходить стороной (да, я еще и с ней, бывает, работаю), упрется руками и ногами и пошлет меня с моим уникодом! Теперь вопрос: каких подводных камней я могу избежать еще на берегу? И какой способ из всех даст мне результат -100% переход на новую локаль? Надеюсь на понимание, просто куча флуда (я не о всех постах!) меня угнетает.

Re: UTF-8

Добавлено: 2009-10-03 20:16:25
cloudsv
hanggard писал(а):В статьях, которые я читал, это вводится как раз только на терминалы под иксами или под ssh (по второму я уже начал сомневаться, пните, если не прав). Ну, по крайней мере, ssh-клиент можно настроить понимать эту кодировку. А вот так называемая syscons, которую я ОЧЕНЬ не хочу обходить стороной (да, я еще и с ней, бывает, работаю), упрется руками и ногами и пошлет меня с моим уникодом! Теперь вопрос: каких подводных камней я могу избежать еще на берегу? И какой способ из всех даст мне результат -100% переход на новую локаль? Надеюсь на понимание, просто куча флуда (я не о всех постах!) меня угнетает.
syscons придется обойти стороной или использовать jfbterm
а вот насчет X или ssh все вполне реализуемо
В тех статьях на которые ты кидал ссылки

Re: UTF-8

Добавлено: 2009-10-03 20:24:05
hanggard
cloudsv, спасибо, мил человек! я уже отчаялся :(. ладно, буду рыть туда. Только один вопрос: все три вида консоли будут нормально жить с файлами в этой кодировке? То есть могу смело ставить конвертить на ночь?

Re: UTF-8

Добавлено: 2009-10-03 20:26:09
paradox
2009-10-03 13:57:36
paradox писал(а):jfbterm поставь
настрой и радуйся
токо слепой мог этого не увидеть

Re: UTF-8

Добавлено: 2009-10-03 20:26:36
cloudsv
hanggard писал(а):cloudsv, спасибо, мил человек! я уже отчаялся :(. ладно, буду рыть туда. Только один вопрос: все три вида консоли будут нормально жить с файлами в этой кодировке? То есть могу смело ставить конвертить на ночь?
на 100% не уверен. но у меня в 3х видах консоли cp1251 во всех все вижу)

Re: UTF-8

Добавлено: 2009-10-04 1:10:58
Гость
cloudsv писал(а):syscons придется обойти стороной или использовать jfbterm
а вот насчет X или ssh все вполне реализуемо
В тех статьях на которые ты кидал ссылки
в тех статьях на opennet'е также есть способ как и обойтись без jfbterm. До 8-ки можно использовать screen, после 8-ки - я выкладывал патчики для маппинга юникода в koi8-r/cp1251 с помощью libteken.

Re: UTF-8

Добавлено: 2009-10-04 9:22:17
hanggard
с терминалами вроде нормально, но когда я написал про jfbterm в ~/.login, при ssh стала появляться такая байда:
jfbterm: This program must be run from the console
и ssh-сессия рвется. И еще: Xterm отображает русский нормально, а печатает зюзюками.

Re: UTF-8

Добавлено: 2009-10-04 9:28:40
cloudsv
попробуй в xterm указать locale

Код: Выделить всё

setenv LANG ru_RU.UTF-8
и из этого xterm запустить еще один xterm
поидее должно все работать.

Re: UTF-8

Добавлено: 2009-10-04 9:40:53
hanggard
Изображение
По-моему, все на месте...