LINUX.ORG.RU
ФорумTalks

Работают ли современные дистрибутивы с локалями отличными от *.UTF-8?

 , , ,


3

4

Я пробовал запустить файловый менеджер, предварительно написав команду

export LANG=ru_RU.KOI8-R LC_ALL=ru_RU.KOI8-R
, всё равно имена файлов отображались как UTF-8. Насколько я знаю, иксы как таковые ничего кроме UTF-8 не знают.

Вопрос — как вообще в таком случае можно жить? Большая часть иксовых программ будет создавать файлы с именами в UTF-8 и не всегда можно без этого обойтись (например если файлы скачиваются браузером или это автосейвы локализованной игры), в консоли эти имена будут отображаться кракозябрами. Большая часть текстовых файлов (например скачанные из инета веб-страницы) будут требовать пропускания через iconv чтоб их прочитать.

Значит ли это, что не UTF-8 локаль будет создавать только проблемы, а помогать в редких случаях когда используются консольные утилиты типа tr, не умеющие (или не желающие) использовать юникод?

Eddy_Em, что скажешь?

P.S. Интересная ссылка про юникод.

★★★★★

Последнее исправление: Xenius (всего исправлений: 2)

Можно юзкейс для не UTF-8 локали? Спрашиваю потому, что моя личная поделка ничего кроме UTF-8 не понимает. Вдруг все-таки другие кодировки кому-то нужны.

Relan ★★★★★
()
Ответ на: комментарий от Relan

Можно юзкейс для не UTF-8 локали?

винда.

моя личная поделка ничего кроме UTF-8 не понимает

все правильно делаешь.

Stil ★★★★★
()
Ответ на: комментарий от Deleted

Я тоже думаю, что лучше бы UTF-VAR какой-нибудь сделали, где на 1 символ может быть сколько угодно байтов. Чтоб уже наверняка.

vurdalak ★★★★★
()
Ответ на: комментарий от Relan

Спрашиваю потому, что моя личная поделка ничего кроме UTF-8 не понимает.

Если она внутри всегда использует UTF-8, это ОК и так и надо.

А если она читает данные снаружи, то это другой вопрос. Какие данные снаружи она читает? Если они потенциально могут быть не в UTF-8, то необходимо, чтобы программа корректно это обрабатывала. Не обязательно умела использовать другие кодировки — если будет выдавать ошибку, это по идее тоже корректно. А вот делать что-то неожиданное для пользователя — например портить текстовые файлы при сохранении — это некорректное поведение.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

UTF-8 — кодировка с переменной длиной символа. Она и есть.

intelfx ★★★★★
()
Ответ на: комментарий от vurdalak

UTF-16 очень даже живая в джаве :3

И сочетает худшие особенности — и не constant length (некоторые символы в UTF-16 не влазят) и не совместима с ASCII. Если уж юникод, то только UTF-8 или UTF-32.

Xenius ★★★★★
() автор топика

Значит ли это, что не UTF-8 локаль будет создавать только проблемы

И с каждым годом всё больше.

в редких случаях когда используются консольные утилиты типа tr, не умеющие (или не желающие) использовать юникод?

В некоторых дистрибутивах coreutils доведены до юзабельного состояния. Но это не слака, да. И не дебиан, к сожалению.

Gotf ★★★
()
Ответ на: комментарий от note173

и даже в UTF-32 символ не обязательно влезает в соответствующую длину.

Пруфлинк?

Если это правда, значит я думаю, что никакие юникодные кодировки кроме UTF-8 использовать не следует.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от daemonpnz

С его то послужным списком? Там пативен вызывать надо на него самого :}

Deleted
()
Ответ на: комментарий от note173

AFAIR, в 32 влезает. Ну, если под символом понимать codepoint, а не символ на экране. Если второе, то, конечно, combining characters несколько портят картину.

Deleted
()
Ответ на: комментарий от daemonpnz

Debian 2.2 тоже плохо работает с UTF-8
А еще Debian 2.2 не сможет запустить свежий Google Chrome, Skype и многое нужное
Да даже Steam не запустит
А Windows XP может, не смотря на то, что Debian 2.2 вышел на год позже

ubuntuawp ★★
()

всё равно имена файлов отображались как UTF-8. Насколько я знаю, иксы как таковые ничего кроме UTF-8 не знают.

А ты их в КОИ8 перегнал, гений?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

В линуксе. У меня везде КОИ. Где-то с десяток компьютеров наберется. И серверки на КОИ, т.к. там хрюникод 7 раз не вперся!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Оратор выше говорит про Windows XP, которая плохо работает с UTF-8
Я ему указал на то, что Debian, который вышел на год позже, не может запустить и половину того, что запускает Windows XP
Debian Sarge (3.1) тоже не потянет Steam, хотя вышел позже SP2

ubuntuawp ★★
()
Ответ на: комментарий от Deleted

Монитор заплыл от жира
В BSD спокойно работает и UTF-8
Основной use-case FreeBSD: сервера и маршрутизаторы
Зачем на сервере нужен UTF-8? В X11 он по дефолту (LANG=ru_RU.UTF-8 X11)
Можно для каждого пользователя указать свою локаль
Вообще, в BSD для каждого пользователя можно указать свои переменные, вне зависимости от shell (login class)

ubuntuawp ★★
()

Слава богу, у нас есть UTF-8, и разработчики могут не переживать, что настройки локали у юзверя будут совершенно другие. А постоянно переключать локали для удобства олдфаков никто не будет.

iVS ★★★★★
()
Ответ на: комментарий от ubuntuawp

Она спокойно работает с UTF-8 начиная с Win7

Неправда ваша. Даже Windows 8 с UTF-8 не работает. Если не веришь, то скомпилируй и запусти вот это:

#include <iostream>
#include <fstream>

int main () {
    std::string fn = u8"यूनिकोड юникода.txt";
    std::ofstream outfile (fn);
    char ch = 65;
    outfile.put(ch);
    return 0;
}

С микрософтовским компилятором, желательно. Если в текущей директории файл создастся — значит поддерживает, да.

Xenius ★★★★★
() автор топика
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от daemonpnz

ты не забывай про 30 процентов WinXP

Действительно, разработчики XP вполне могли бы позаимствовать машину времени на ЛОРе, чтобы узнать про принятие в 2003-м стандарта на UTF-8. %)

Tigger ★★★★★
()
Ответ на: комментарий от Xenius

Сфигали? У тебя как был хрюникод в консоли, так и остался. Надо так сделать:

	printf "\033(K"
	mapscrn koi2alt
	loadkeys ruwin_alt-KOI8-R
	setfont Cyr_a8x16
Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ubuntuawp

Не прикидывайся валенком. Сравниваешь ОСи — сравнивай их. Никакой заслуги XP в том, что сторонние программы на ней запускались, нет. У них просто не было выбора, т.к. народ не апгрейдился. В линуксе проблем с апгрейдами нет, поэтому некрофилия 10-летней давности никому невпёрлась, соответственно никто в софт костыли не встраивает.

Deleted
()
Последнее исправление: Mystra_x64 (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Сфигали? У тебя как был хрюникод в консоли, так и остался. Надо так сделать:

Да в консоли — это другой вопрос, там-то всё более-менее понятно. Я про иксовый файловый менедежер типа Dolphin или Thunar. Они у тебя имена файлов, если они в KOI8-R, как отобрают? А если какой-то файл с именем в UTF-8, что они делают?

Xenius ★★★★★
() автор топика

Локаль генерировать кто будет?

shell-script ★★★★★
()
Ответ на: комментарий от Xenius

А чего ты иксы в КОИ8 не запустил?

Я про иксовый файловый менедежер типа Dolphin или Thunar. Они у тебя имена файлов, если они в KOI8-R, как отобрают?

У меня такой дряни нет за ненадобностью. А диалоги открыть/сохранить отображают нормально. Но не все, у некоторых есть косяки (если рукожопый быдлокодер не позаботился о enca).

А если какой-то файл с именем в UTF-8, что они делают?

Показывают белиберду, как обычно.

Eddy_Em ☆☆☆☆☆
()

У меня на современной (сегодня обновлял) генточке кои8р. Все ок, брат жив.

Lavos ★★★★★
()
Ответ на: комментарий от der_looser

Еще минимум лет 15 будут хрюнделем пользоваться, пока не сдохнут последние динозавры-компьютеры. А потом уже произойдет переход на линукс (хотя, он к тому времени скорее всего сдохнет).

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.