Page 63 of 99
Posted: Wed Jul 24, 2013 7:30 am
by Fr0sT
Так все правильно
1251(1251) - текст
1251(866) - кракозябры
=> 866
1251(866(1251)) - кракозябры
1251(866(866)) - текст
Posted: Wed Jul 24, 2013 11:36 am
by yozhic
Instructor
Спасибо. Теперь всё корректно. Попробовал переключать регистр в ново-греческом тексте и в древне-греческом – пока никаких ошибок не замечено.
Posted: Thu Jul 25, 2013 3:55 pm
by LEN
Fr0sT
Не понял ответа, поэтому переформулирую вопрос.
Есть файл в кодировке 1251, открытый как 1251 (т. е. читабельный).
Надо часть текста перекодировать в 866, чтобы потом эта часть читалась при открытии файла как 866 (цель - нужная информация должна читаться при открытии файла в любой кодировке: и 1251, и 866).
Сейчас, чтобы получить нужный результат, приходится выполнять команду "Перекодировать из 866 в 1251", что довольно нелепо: весь текст и так в 1251, а в 866 ещё ничего и нет.
Казалось бы логичнее выполнять команду "Перекодировать из (текущей) 1251 в (другую) 866", не так ли?
Posted: Fri Jul 26, 2013 5:06 am
by Instructor
LEN wrote:Казалось бы логичнее выполнять команду "Перекодировать из (текущей) 1251 в (другую) 866", не так ли?
Будем опираться на вашу логику: берем текущий текст в кодировке 1251, в результате имеем полученный текст UTF-16LE (AkelPad работает только с Unicode'ом). Затем мы приступаем к процессу конвертации. На этом шаге мы имеем две кодировки UTF-16LE и 866. И что теперь нам нужно указать в параметрах преобразования (имея только UTF-16LE и 866), чтобы в результате получить 1251?
Чтобы более детально разобраться с механизмом конвертирования текста, см. функцию RecodeTextW в файле исходников Edit.c, иначе доводы будут биться о ваше представление о правильности.
Posted: Fri Jul 26, 2013 9:09 pm
by LEN
Instructor
Спасибо за ответ!
Детально разобраться с механизмом конвертирования текста по Edit.c мне не под силу, но достаточно того, что Вы поняли мои сомнения.
Правильно ли я понял, что последнее преобразование ("чтобы в результате получить 1251") нужно для отображения перекодированного в 866 текста в текущем (1251) окне Акелпада?
Posted: Sat Jul 27, 2013 7:57 am
by Instructor
LEN
Верно.
Поправлю себя - механизм выглядит так:
- Получаем текст, как есть, в UTF-16LE.
- Конвертируем в однобайтовую кодировку, используя поле "Из:".
- Конвертируем из однобайтовой кодировки в UTF-16LE используя поле "В:".
Posted: Sat Jul 27, 2013 6:54 pm
by LEN
Instructor
А с какой целью в поле "В:" оставлена возможность указывать кодировку, отличную от кодировки, в которой открыт файл?
Что-то я не могу с ходу придумать, для чего это можно было бы использовать.
Posted: Sun Jul 28, 2013 6:05 am
by Instructor
LEN
Есть процесс конвертирования из А в Б, есть процесс "расконвертирования" из Б в А - они имеют разную направленность.
Например, открыт батник в кодировке 1251. Если нужно конвертировать русский текст, не меняя кодировку, указывается из 866 в 1251. Если нужно увидеть "каракули" в батнике, не меняя кодировку, указывается из 1251 в 866.
Posted: Sun Jul 28, 2013 12:12 pm
by opk44
При снятии галочки в настройке Coder-плагина у опции "Использовать кэш" AkelPad падает при включенном codefold
Подпись ошибки:
Code: Select all
AppName: akelpad.exe AppVer: 4.8.4.0 ModName: coder.dll
ModVer: 11.3.0.0 Offset: 0000ed62
Последовательность действий:
1) Открыть какой-либо подсвечиваемый файл (например html) с включенными режимами highlight и
codefold.
2) Вызвать настройку Coder-плагина вкладка общие.
3) Снять галочку "Использовать кэш", нажать [Применить] и [OK] ==> Падение AkelPad
Доп.инф.:
Опции CodeFold1: Список-Авто, Лимит-10000, Следовать за кареткой-Везде, Макс.документ-1000000симв.
Опции CodeFold2: Узел-Круг, [х]Отмечать тэги, [х]Сворачивать все при открытии.
Posted: Sun Jul 28, 2013 3:47 pm
by Instructor
opk44
Не воспроизводится. Вышлите/выложите папку с AkelPad'ом.
Posted: Sun Jul 28, 2013 7:46 pm
by LEN
Instructor
Спасибо, "дошло". Для просмотра "кракозябров" я обычно использую просмотрщик Тотал Командера (у меня там сделано быстрое переключение между 1251, 866 и KOI8), поэтому сам и не догадался.
Posted: Tue Jul 30, 2013 1:00 pm
by Andrew
мучает в последних версиях один баг. у меня в текстовом документе ссылка на файл и ниже пароль для него. когда я выделенный текст копирую Ctrl+C все копируется и вставляется нормально. Если я выбираю команду Копировать по правому щелчку мыши, то часто копируется только одна верхняя строка, документ простой, содержимое такого вида.
http://сайт
pass: пароль
Posted: Tue Jul 30, 2013 1:42 pm
by opk44
Andrew
Вообще-то, чтобы добиться такого эффекта нужно еще постараться. У меня это получилось только при выделении справа-налево и снизу-вверх + при включенной опции "Показывать гиперссылки" + курсор при выделении не должен выйти за пределы гиперссылки. В таком случае вместо настроенного пользовательского контекстного меню вызывается куцее стандартное базовое и копируется не все выделение, а только сама гиперссылка.
Поэтому если Вас сильно мучает этот баг, то можете либо отключить показ гиперссылок (Настройки - Параметры... - [Редактор 2] - Гиперссылки [x] Показывать), либо захватывать в выделение еще и верхнюю пустую строку (если, конечно, таковая имеется), либо выделять сверху-вниз и слева направо.
Upd.:
Еще можно в начало каждой строки добавить 1 пробел ([Ctrl+A] + [Space]). Смысл тот же, что и при захвате в выделение верхней пустой строки (особенно если ее нет). И поменяйте способ открытия гиперссылок с одинарного клика на двойной (это безопаснее в плане ложных срабатываний).
Posted: Tue Jul 30, 2013 8:15 pm
by Andrew
opk44
спасибо. придется отключить показ гиперссылок до исправления, либо привыкнуть к Ctrl+A, потому как вставка пробелов не совсем айс.
Posted: Tue Jul 30, 2013 9:34 pm
by opk44
Andrew
1) Там еще и третий вариант предлагался (выделять сверху-вниз), что вместе с переключением на двойной клик довольно незатратно.
2) "привыкнуть к Ctrl+A" это по-видимому опечатка если речь шла о копировании с клавиатуры. Кстати сам я предпочитаю вместо Ctrl+C/Ctrl+V пользоваться парой Ctrl+Insert/Shift+Insert (На стандартной, а не ноутбучной клавиатуре).
А теперь самое неприятное
3) Я еще раз посмотрел на Вашу проблему, и понял что "исправления" ждать придется очень и очень долго, поскольку, как оказалось,
это и не баг вовсе. Так что мы оба ошибались. В действительности же там происходит вот что. Когда курсор оказывается на гиперссылке, то вызывается не
"Меню окна редактирования" контекстного меню, а
"Меню ссылок" контекстного меню. В нем ПЕРЕД стандартными операциями копирования/вставки идут три операции со ссылками и еще две с откатом...
Code: Select all
"Открыть" Link(1)
"Копировать" Link(2)
"Выделить" Link(3)
SEPARATOR
SET(8)
"" Command(4151) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 10)
"" Command(4152) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 11)
SEPARATOR
"" Command(4153) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 7)
"" Command(4154) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 8)
"" Command(4155) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 9)
"" Command(4156) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 25)
SEPARATOR
"" Command(4157)
UNSET(8)
Т.е. срабатывает элементарная невнимательность - мы видим первое слово "Копировать" (оно без иконки) и уже не замечаем ниже второго слова "Копировать" (оно c иконкой).
Понимание происходящего дает Вам новые возможности. Например, чтобы не надеяться на свою внимательность и в будущем, Вы можете подредактировать
"Меню ссылок" контекстного меню так как Вам удобней (изменив порядок следования пунктов).
Добраться до настроек контекстного меню через "Настройки"-"Плагины..."-"ContextMenu::Show"-"Изменить меню..."
P.S. Приношу свои извинения за невольное введение Вас в заблуждение.