LINUX.ORG.RU

extended file attributes для хранения кодировки

 extended file attributes,


0

1

Вот прочитал, что они существуют и в ext3 вроде как присутствуют.

Вопрос такой: можно ли в реальности использовать их конечному пользователю для хранения кодировки.

Например, в EMACS можно написать кодировку в первой строке. Но далеко не все редакторы это понимают, и нужно менять сам файл, если кодировка меняется.

А можно ли сделать так, чтобы кодировка хранилась в расширенных атрибутах файла, и чтобы я мог в следующих случаях сразу знать кодировку файла:

- файл открыт редактором (допустим, leafpad-ом) - файл получен по эл. почте в виде вложения - файл загружен через браузер - файл расшарен через самбу - файл перенесён из другой системы на флешке

Насколько я понял, и ext3, и ntfs в принципе позволяют хранить кодировку в extended attributes, вопрос лишь в том, чтобы всё это заработало как система.

Вот я и хочу понять, чего для работоспособности этой системы сейчас не хватает.

★★★★★

Вот я и хочу понять, чего для работоспособности этой системы сейчас не хватает.

Так а разве оно не работает сейчас? Посмотри через file, тебе будет сказано в какой кодировке файл сохранен. Указывать кодировку умеют очень многие текстовые редакторы, ну и выставлять нужную кодировку при открытии тоже.

в EMACS можно написать кодировку в первой строке

Не знаю как там emacs работает, но что-то похоже что этот тот вариант как во втором питоне, когда если ты хочешь работать с сохраненными в скрипте строками с юникодом ты явно должен об этом сказать интерпретатору, потому что по дефолту он считает что скрипт в ascii и сломается при выполнении. (в третьей ветке юникод по дефолту). Но тут кодировка файла никак не влияет, это именно как интерпретатор работает с твоим файлом.

micronekodesu ★★★
()

Нет.

С расширенными атрибутами всё очень плохо. ФС их поддерживают, и нормальные и в оффтопике, но всё, что между - нет: почтовые клиенты, браузеры, фтп-клиенты, дропбоксы всякие и большой-брат-диски эти метки съедят.

Даже если ты пропишешь кодировку, mime и контрольную сумму в xattrs и найдешь/напишешь программу, извлекающую из этого пользу - при перезаписи файла атрибуты могут перестать соответствовать действительности.

Вот если бы был механизм, который бы сбрасывал атрибуты автоматически при изменении файла, или ещё круче, вычислял бы заново... но нет.

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

Не знаю как там emacs работает

Для лисповых файлов в первой строке нужно написать что-то вроде:

;; -*- coding: utf-8; -*-
И тогда весь стек технологий, связанных с лиспом (или почти весь) поймёт.

Вот если бы был механизм, который бы сбрасывал атрибуты автоматически при изменении файла, или ещё круче, вычислял бы заново..

Ну, вычислить их,наверное, вообще говоря, нельзя. Но можно, чтобы в редакторе был выпадающий список, позволяющий как прочитать, так и установить кодировку файла.

Я на самом деле пишу бумагу о том, как мне надо дать денег на мой русскоязычный ЯП и она по ходу дела превращается в бумагу о том, как всё плохо с кириллизацией-русификацией и что нужно сделать, чтобы это исправить. Видимо, было бы недурно, если бы в локализованных ОС этот механизм был бы простроен? Иначе ведь поулчается, что каждый бедный русскоязычный пользователь должен гадать, в какой кодировке файл, если история этого файла не вполне ясна. Только одних популярных однобайтных кодировок я так понимаю, не меньше 4 (koi-8r,866,1251 и ещё в маке что-то) плюс utf-8, плюс utf-16 или как он там. Т.е. русскоязычный пользователь, вообще говоря, не может без матюков даже прочитать текстовый файл, и это явный непорядок на грани диверсии.

Т.е. идея такая: государство требует, чтобы поставщики коммерческих ОС встроили такие механизмы в свои ОС, а иначе отказать в распространении. Ну а над Linux придётся работать самостоятельно. Правда, я думаю, что международным командам, поддерживающим инструменты, в принципе, в лучшем случае, плевать на проблемы русскоязычных пользователей, а в худшем они только рады их умножить. Поэтому предвидится куча форков всех программ, начиная от Firefox и кончая самбой.

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

В принципе понимаю, где можно встретить текстовые файлы в cp1251, но остальные кодировки, по-моему таки умерли под пятой utf8.

legolegs ★★★★★
()

и нужно менять сам файл, если кодировка меняется.

Ээээм. И что? Если кодировка указана снаружи, её можно поменять, не поменяв файл?

i-rinat ★★★★★
()
Ответ на: комментарий от den73

Что совершенно не мешает ему быть говном. Как и SAPу, кстати. Как и венде в общем и IE в частности.

anonymous
()
Ответ на: комментарий от den73

Только одних популярных однобайтных кодировок

Покупай доллары, через пару лет будет кризис 98го и доллар в три раза скакнёт.

redgremlin ★★★★★
()

Что только не придумают, лишь бы не использовать юникод.

anonymous
()
Ответ на: комментарий от den73

Поэтому предвидится куча форков всех программ, начиная от Firefox и кончая

Очнись дядя, каких форков, везде уже давно utf8. И только в твоём воспалённом мозгу какие-то кодировки и проблемы.

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