Автор Гілка: Проблема із кодуванням  (Прочитано 7357 раз)

Відсутній Вуйко з полонини

  • Кореспондент
  • ***
  • дописів: 181
  • Карма: +0/-0
У мене виникла проблема із кодуванням. Українські теки просто не розпізнає. Як в консолі, так і в завойовнику. Надаю locale:
LANG=uk_UA.KOI8-U
LC_CTYPE="uk_UA.KOI8-U"
LC_NUMERIC="uk_UA.KOI8-U"
LC_TIME="uk_UA.KOI8-U"
LC_COLLATE="uk_UA.KOI8-U"
LC_MONETARY="uk_UA.KOI8-U"
LC_MESSAGES="uk_UA.KOI8-U"
LC_PAPER="uk_UA.KOI8-U"
LC_NAME="uk_UA.KOI8-U"
LC_ADDRESS="uk_UA.KOI8-U"
LC_TELEPHONE="uk_UA.KOI8-U"
LC_MEASUREMENT="uk_UA.KOI8-U"
LC_IDENTIFICATION="uk_UA.KOI8-U"
LC_ALL=uk_UA.KOI8-U
cat /etc/profile.d/lang.sh
export LANG=en_US
export LC_COLLATE=C
MAINLOCALE="uk_UA.KOI8-U"
MAINCHARSET="koi8-r"
export LC_ALL=$MAINLOCALE
export LESSCHARSET=$MAINCHARSET
export LANG=$MAINLOCALE
export LC_NUMERIC=C
export LC_TIME=$MAINLOCALE
export LC_COLLATE=$MAINLOCALE
export LC_MONETARY=$MAINLOCALE
export LC_MESSAGES=$MAINLOCALE
export LC_PAPER=$MAINLOCALE
export LC_NAME=$MAINLOCALE
export LC_ADDRESS=$MAINLOCALE
export LC_TELEPHONE=$MAINLOCALE
export LC_MEASUREMENT=$MAINLOCALE
export LC_IDENTIFICATION=$MAINLOCALE
export MANPATH=/usr/man/uk:/usr/man/ru:$MANPATH
"Don't waste your time or time will waste you" Matthew Bellamy

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Проблема із кодуванням
« Відповідей #1 : 2007-03-28 13:10:38 »
1. Який у вас дистрибутив?
2. Викиньте все /etc/profile.d/lang.sh і замініть на export LANG=uk_UA.UTF-8 (з UTF-8 зараз значно менше проблем чим з 8-ми бітними кодуваннями). Нічого більше не потрібно.
3. Кодування яке використовується для стільниці вибирається окремо при запуску нової сесії в gdm чи kdm, тому локалізація консолі і локалізація завойовника можуть не співпадати.
[Fedora Linux]

Відсутній Ign1111

  • Письменник
  • *****
  • дописів: 829
  • Карма: +0/-0
  • Linux 4ever!
Re: Проблема із кодуванням
« Відповідей #2 : 2007-03-28 20:21:28 »
export LANG=en_US
MAINCHARSET="koi8-r"

А чого тут не українська стоїть?
Linux. The future is open.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Проблема із кодуванням
« Відповідей #3 : 2007-03-28 22:26:16 »
export LANG=en_US
MAINCHARSET="koi8-r"

А чого тут не українська стоїть?

А по барабану - LC_ALL перекриває всі LC_* змінні.
[Fedora Linux]

Відсутній Вуйко з полонини

  • Кореспондент
  • ***
  • дописів: 181
  • Карма: +0/-0
Re: Проблема із кодуванням
« Відповідей #4 : 2007-03-28 23:31:12 »
1. Який у вас дистрибутив?
DeepStyle 2.0 (Slackware linux 11)
2. Викиньте все /etc/profile.d/lang.sh і замініть на export LANG=uk_UA.UTF-8 (з UTF-8 зараз значно менше проблем чим з 8-ми бітними кодуваннями). Нічого більше не потрібно.
3. Кодування яке використовується для стільниці вибирається окремо при запуску нової сесії в gdm чи kdm, тому локалізація консолі і локалізація завойовника можуть не співпадати.
Можна, будь ласка, подетальніше: що мені все викинути? і що  куди поставити.
"Don't waste your time or time will waste you" Matthew Bellamy

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Проблема із кодуванням
« Відповідей #5 : 2007-03-29 00:02:48 »
Можна, будь ласка, подетальніше: що мені все викинути? і що  куди поставити.

Для того щоб встановити українську локалізацію, достатньо лише однієї змінної: LANG=uk_UA.UTF-8:
bash$ LANG=uk_UA.UTF-8 locale
LANG=uk_UA.UTF-8
LC_CTYPE="uk_UA.UTF-8"
LC_NUMERIC="uk_UA.UTF-8"
LC_TIME="uk_UA.UTF-8"
LC_COLLATE="uk_UA.UTF-8"
LC_MONETARY="uk_UA.UTF-8"
LC_MESSAGES="uk_UA.UTF-8"
LC_PAPER="uk_UA.UTF-8"
LC_NAME="uk_UA.UTF-8"
LC_ADDRESS="uk_UA.UTF-8"
LC_TELEPHONE="uk_UA.UTF-8"
LC_MEASUREMENT="uk_UA.UTF-8"
LC_IDENTIFICATION="uk_UA.UTF-8"
LC_ALL=


Якщо ж встановити змінну LC_ALL, то вона перебиває собою всі LC_* змінні:
bash$ LANG=uk_UA.KOI8-U LC_ALL=C locale
LANG=uk_UA.KOI8-U
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

Тому викиньте всі встановлення всіх змінних і залиште лише LANG=uk_UA.UTF-8. Воно працюватиме як слід.
[Fedora Linux]

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Проблема із кодуванням
« Відповідей #6 : 2007-03-29 12:22:35 »
Тому викиньте всі встановлення всіх змінних і залиште лише LANG=uk_UA.UTF-8. Воно працюватиме як слід.
У випадку конкретно слаки не все так просто. Чудова інструкція з юнікодизації слаки є тут (російською). І не забудьте перезібрати ядро з CONFIG_NLS_DEFAULT=utf8.

Розділ для іксів можна не виконувати, там все і так чудово. Також щиро рекомендую mc і slang зібрати з юнікодними патчами самому. Це найпростіше робиться з src-rpmками для, наприклад, федори. Берете slang тут і mc тут же. Робите
rpmbuild --rebuild slang-2.0.6-3.src.rpm --nodeps
cd /usr/src/some_rpms_base_dir/RPMS/i386
rpm2tgz slang-2.0.6-3.i386.rpm
installpkg slang-2.0.6-3.i386.tgz

rpmbuild --rebuild mc-4.6.1a-30.fc6.src.rpm --nodeps
cd /usr/src/some_rpms_base_dir/RPMS/i386
rpm2tgz mc-4.6.1a-30.fc6.i386.rpm
upgradepkg mc-4.6.1a-30.fc6.i386.tgz

some_rpms_base_dir - це я просто не пам'ятаю, куди точно кладе це все rpm у слаці (за rhel-ом я зараз). Але для успішного виконання в some_rpms_base_dir мають бути директорії BUILD, SOURCES, RPMS/i386.
« Змінено: 2007-03-29 12:37:27 від Cthulhu »

Praporshic

  • Гість
Re: Проблема із кодуванням
« Відповідей #7 : 2007-03-29 12:34:19 »
Off-topic:
Пропоную повісити на Cthulhu відповідальність за гілку присвячену Slackware.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Проблема із кодуванням
« Відповідей #8 : 2007-03-29 12:45:45 »
Off-topic:
Пропоную повісити на Cthulhu відповідальність за гілку присвячену Slackware.
Off-topic:
Призначити мене верховним жерцем храму Патріка на ЛОУ?? ;D ;D ::)

Відсутній miwa

  • Літератор
  • ******
  • дописів: 1111
  • Карма: +0/-0
Re: Проблема із кодуванням
« Відповідей #9 : 2007-03-29 13:21:47 »
Off-topic:
Пропоную повісити на Cthulhu відповідальність за гілку присвячену Slackware.
Спершу прочитав як "пропоную повісити Ктулху" і перелякався, що я щось пропустив, і священна війна "Дебіен проти Слаки" без мене перейшла до фінальної стадії.

По оффтопу: +1
Читайте документацію - вона кермує.

Praporshic

  • Гість
Re: Проблема із кодуванням
« Відповідей #10 : 2007-03-29 13:32:25 »
Off-topic:
Призначити мене верховним жерцем храму Патріка на ЛОУ?? ;D ;D ::)
Off-topic:
Якщо не можеш перемогти - потоваришуй

Спершу прочитав як "пропоную повісити Ктулху"
Це ми ще встигнемо зробити. [smiley=evil.gif]
і перелякався, що я щось пропустив, і священна війна "Дебіен проти Слаки" без мене перейшла до фінальної стадії.
Поки що - ні.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: Проблема із кодуванням
« Відповідей #11 : 2007-03-29 13:41:40 »
Спершу прочитав як "пропоную повісити Ктулху"
Це ми ще встигнемо зробити. [smiley=evil.gif]
Так, мені щось не подобається напрям розмови=) Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn, ага? Зохаваю.

Відсутній konst@ntin

  • Новачок
  • *
  • дописів: 1
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Проблема із кодуванням
« Відповідей #12 : 2007-05-14 21:58:48 »
Звісно в Slackware потрібно переходити на юнікод. Варто витратити якихось 1-2 години на правку файлів і перекомпіляцію ядра та заміну деяких пакетів, як зникають чимало проблем:
1) Відображення імен файлів у заголовку в ОпенОфіс
2) Відкриття файлів з українським іменем у KFaxView (напр. djvu)
3) Відображення імен у самбі