MorSe
Terminal содержит досовский набор.
А в EmEditor вообще-то помогает Reload in different Encoding->Cyrillic (Dos866).
Terminal содержит досовский набор.
А в EmEditor вообще-то помогает Reload in different Encoding->Cyrillic (Dos866).
PaulGor
Цитата:да и IMHO, не дело для текстового редактора быть одновременно и
перекодировщиком - есть отдельные перекодировщики, и т.к. они на это и заточены,
то удобнее ими пользоваться, а в Windows-редакторе писать 'родной' кодировкой
Windows-1251...
Насчет перекодировки это необязательно, согласен, но иногда очень удобно. А вот насчет распознавания кодировки и записи только в 1251 категорически не согласен.
Я уже раньше писал, что у меня, например, часто бывает нужно открыть файл в ДОС-кодировке и записать его в ней-же. Причем текст должен быть не перекодирован и не искажен (вследствие временного перекодирования на время работы в редакторе). Очень часто после редактирования в некоторых редакторах происходит искажение спецсимволов (псевдографики или национальных символов).
PaulGor
Национальные алфавиты легко настраиваются.
Для работы выбирается многоязычный шрифт, например, "Courier New" и:
- надо писать по-немецки, в windows-1252:
выбираю "Western" в списке Scripts для этого шрифта
- надо писать по-русски, в windows-1251:
выбираю "Cyrillic" в списке Scripts для этого шрифта
С учетом вышесказанного, это все теряет смысл. Мне не всегда нужно писать в какой-то определенной кодировке (с нуля), мне нужно, чтобы редактор эту кодировку сам распознал (пусть это будет польская, немецкая, как ты предлагал, или украинская ДОС-овсая, как нужно мне), и после редактирования в ней-же записал (причем корректно). Я могу даже не обратить внимания, в какой кодировке был файл, тем более что-то выбирать вручную.
Так вот упоминаемый UltraEdit этого ничего не делает. Может я плохо искал, но ты сам подтвердил, что распознавания в нем нет, а отсюда все и вытекает...
Тут, конечно, UltraEdit совсем не подходит. Правда, это довольно специфическая
вещь - в настоящее время мало кто работает с файлами в
кодировке DOS-866.
По-моему это принципиально невозможно - 'д' в win1251 - это байт со значением
0xE4 (код буквы - 228).
Немецкая буква a-умляют - тоже 0xE4 (код буквы - 228) в кодировке 1252 -
в простом тексте это просто байт, как понять, немецкий он или русский?
Если мы имеем не один символ, а набор символов (коим является текст), то уже с большей долей вероятности можем сказать к какой кодировке (а вернее кодовой странице) этот набор символов принадлежит.
Например, если помимо того-же 228 кода, в тексте есть символы с 253 кодом (э), которого, например, нет в немецкой кодировке, то скорее всего текст все-таки, русский. Вероятность ошибки, конечно есть, если текст небольшой, но здесь все зависит от алгоритма автоопределения.
Да если даже и кодировка не определилась, то выбрав ее вручную, мы однозначно укажем как редактору отображать и записывать текст, чтобы не испортить его.
Разве? Если на диске - простой текст, скажем a.TXT, то этот просто набор байтов
и никак нельзя узнать, из какой они кодовой таблицы - Western или Cyrillic,
ведь во всех кодовых таблицах позиции 128-255 заняты, вот они все здесь
Почему это ты думаешь, что в Western (нет кодировки 'немецкой', есть Western)
нет символа с кодом 253 (hex 0хFD)? Нет, в любой кодировке все позиции 128-255
обычно заняты, вот, например, картинка "Western":
Поэтому мне кажется нельзя авто-определить, кириллический ли текст - или
ты знаешь редактор, ктороый умеет это делать?
Только юникодовые редакторы могут испортить текст, потому что они 'трогают' байты - пытаются их интерпретировать, т.к. им надо всё время конвертировать текст
Unicode <--->не-Unicode при работе с .TXT (если только не делать юникодового .TXT).
PaulGor:
Поэтому мне кажется нельзя авто-определить, кириллический ли текст - или
ты знаешь редактор, ктороый умеет это делать?
Ты не прав, во многих редакторах это рядовая фича.
Тот-же всем известный простенький Bred это делает легко.
Или редактор RulNote, на который вон ссылку дал YUNGA и которым я пользуюсь.
Да чего далеко ходить. В своих программах я применяю функцию определения кодировки dbf-файлов, написанную собственноручно. Правда определяется только DOS и Win-1251 кодировки, но этого для меня достаточно.
PaulGor
Только юникодовые редакторы могут испортить текст, потому что они 'трогают' байты - пытаются их интерпретировать, т.к. им надо всё время конвертировать текст
Unicode <--->не-Unicode при работе с .TXT (если только не делать юникодового .TXT).
А это уже полный бред. Даже объяснять неохота.
Посмотри, если не влом, RulNote.
Почитай FAQ к нему и документацию.
Если в Bred загрузить польский или немецкий текст, я не думаю, что он это дело
авто-определит
Ты не обратил внимания на слово 'могут' (я его сейчас выделил в цитате выше),
я ведь не писал. что юникодовые редакторы всегда портят текст.
PaulGor:
Цитата:Если в Bred загрузить польский или немецкий текст, я не думаю, что он это дело
авто-определит
Нет, конечно. В нем другой подход. Полистай топик раньше, если есть желание, я об этом писал.
Просто примером Бреда я хотел показать, что автоопределение не есть невозможным.
Бред "заточен" именно под эти кодировки. Ничто не мешает его "заточить" и под другие.
Просто такая цель его автором не ставилась.
правильнее будет сказать не "портят", а "неверно отображают", что сразу-же становится очевидным и легко исправимым.
Да, я это всё так и понимаю, и топик читал выше, но я немного другое хотел
сказать (и написал в предыдущем сообщении) - что Бред, так же ка и большинство
других подобных редакторов, автоопределяет в пределах одного языка,
а это сильно отличается от того, о чём мы говорили - о трудности
автоопределения скажем польского, немецкого и русского.
Кстати, хотел поблагодарить за ссылку на RulNote - вот он (если конечно нужные
таблицы загрузить) авто-определил мне немецкий текст (вернее, Western European encoding текст), потом - польский (вернее Central European encoding текст),
ну русский естественно, сбился только на Baltic (литовский, латышский).
Нет, как раз 'портят':
а) неюникодовые редакторы не трогают байты загружаемого текста и поэтому
могут только неверно отобразить...
б) юникодовые же редакторы 'трогают', конвертируют байты из my.TXT,
поэтому могут их испортить (опять же, НЕюникодовые редакторы
в принципе не могут испортить, т.к. загружают/выгружают байты 'as is')...
Цитата:PaulGor:
а) неюникодовые редакторы не трогают байты загружаемого текста и поэтому
могут только неверно отобразить...
Да, если каждой возможной кодировке соответствует свой шрифт. А это есть далеко не всегда. И в этом случае редактор начинает подставлять "похожие символы" для отображения, например, той-же ДОС-овской псевдографики. И их-же потом и записывает. Меняя первоначальные коды, естественно.
Так делают очень многие "неюникодовые редакторы". Они как раз реально портят файл.
И самое подлое, что делают это незаметно для неискушенного пользователя
Вот это интересно - я никогда таких редакторов не видел. Все, что я видел,
не трогают байты (коды) (по своей природе, это же неюникодовые текстовые редакторы,
Спасибо, теперь понятно - редакторы, специально сделанные для работы с русскими
кодировками, применяют перекодировку,
В обычных текстовых редакторах (которых большинство) такого нет - загружаешь
свой DOS-866 текст, ему и дела нет - он эти байты не трогает никак.
Найдёшь шрифт DOS-866 (http://www.kiarchive.ru/pub/windows/cyrillic/truetype/),
выставишь в качестве рабочего - Ок, твой текст виден нормально.
выбрать script для шрифта невозможно
вставку стандартных ф-ций
Если можно - подробнее.
понял сенкс, в 1.1 версии все это будет.
только время запуска все-таки как-нибудь бы оптимизировать -- иногда и 20Mb, например, файлы открываются...
да, еще одна "вишня":
Хотя возможно если опционально сделаю отключение спелл чекера из программы, то загрузка будет меньше, посмотрим...
Тоже идея гуд. Таким макаром и компиляторы подключать с командной строки можно будет.
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738
Предыдущая тема: Ламерский вопрос по M$ EXCEL`ю