View previous topic :: View next topic |
Author |
Message |
Fr0sT
Joined: 24 Jul 2007 Posts: 876
|
Posted: Wed Apr 10, 2013 6:47 am Post subject: Ввод символов через Alt+#### |
|
|
Не очень понятно, как реализован данный процесс. Покопался в исходниках - вроде все должно обрабатываться нормально, а не через задницу, как у микрософта. Тем не менее, Акель поступает в точности как поделие микрософта, преобразуя коды символов по загадочным критериям.
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду? |
|
Back to top |
|
 |
TNX
Joined: 12 Jul 2012 Posts: 56
|
Posted: Wed Apr 10, 2013 3:15 pm Post subject: |
|
|
Будьте добры, конкретный пример в студию 
Last edited by TNX on Wed Apr 10, 2013 6:37 pm; edited 1 time in total |
|
Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 876
|
Posted: Wed Apr 10, 2013 3:48 pm Post subject: |
|
|
Ради бога:
U+0152 (dec 0338) имеет код Alt+0140
U+0153 (dec 0339) имеет код Alt+0156 (wtf??)
U+0154 (dec 0340) не имеет Alt кода вообще
В Акеле попытка ввести через альт Юникод-коды этих символов приводят к вставке букв R,S,T. Вставка по указанным альт-кодам работает так, как задумал микрософт. В то же время, в Word, например, оба варианта приводят к одинаковым результатам (что, однако, тоже неправильно - как в таком случае вводить U+008C (dec 0140)?) |
|
Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Wed Apr 10, 2013 4:51 pm Post subject: |
|
|
Fr0sT wrote: | U+0152 (dec 0338) имеет код Alt+0140 | Для совместимости используется стандартная обработка для Alt+NumPad. AkelEdit поддерживает специальную обработку ввода символа по десятиричному коду, посредством предварительного нажатия два раза на 0. Т.е. для указанного символа необходимо ввести Alt+00338. |
|
Back to top |
|
 |
TNX
Joined: 12 Jul 2012 Posts: 56
|
Posted: Wed Apr 10, 2013 5:57 pm Post subject: |
|
|
Добавлю, что с префиксом 0 вводятся символы из набора "Windows: западные" (коды 1-255). Если набирать сразу код без предшествующего 0, то используется набор символов "DOS: кириллица 2" (коды 1-255). Префикс 00 - для ввода символов из набора "Юникод" (коды U+). |
|
Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 876
|
Posted: Thu Apr 11, 2013 6:20 am Post subject: |
|
|
Ага! Вот и докопались до истины. Хорошо бы эту фичу в справку куда-нибудь. Попробуем, спасибо!
TNX
во-во, это я и называю "микрософтовое безумие". |
|
Back to top |
|
 |
TNX
Joined: 12 Jul 2012 Posts: 56
|
Posted: Thu Apr 11, 2013 7:30 am Post subject: |
|
|
Fr0sT, это сделано для совместимости с предыдущими версиями ОС, а точнее для корректной работы старого ПО. Ну и пользователи привыкли уже к такой системе, хотя она и несовершенна. |
|
Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 876
|
Posted: Thu Apr 11, 2013 10:45 am Post subject: |
|
|
TNX, мне как пользователю однохренственно, по каким причинам эти костыли тянутся в течение десятков лет. Для меня имеет значение только то, что я не могу вменяемым способом ввести элементарное ударение (U+0769)
upd Это я про Виндуза, а не про Акель |
|
Back to top |
|
 |
TNX
Joined: 12 Jul 2012 Posts: 56
|
Posted: Thu Apr 11, 2013 12:08 pm Post subject: |
|
|
Fr0sT wrote: | Для меня имеет значение только то, что я не могу вменяемым способом ввести элементарное ударение (U+0769) |
Открою вам небольшой секрет: такой способ существует
Quote: | HKEY_CURRENT_USER\Control Panel\Input Method |
Создаем параметр EnableHexNumpad типа REG_SZ со значением 1. Не забываем перезагрузиться. В Блокноте набираем Alt + +301 и получаем символ ударе́ния. |
|
Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 876
|
Posted: Thu Apr 11, 2013 1:05 pm Post subject: |
|
|
Как много интересного открывается Благодарю! |
|
Back to top |
|
 |
Egorkaru
Joined: 22 Mar 2013 Posts: 46 Location: Белово, Кемеровская область, Россия
|
Posted: Mon Jan 13, 2014 9:05 am Post subject: Re: Ввод символов через Alt+#### |
|
|
Fr0sT wrote: | Не очень понятно, как реализован данный процесс. Покопался в исходниках - вроде все должно обрабатываться нормально, а не через задницу, как у микрософта. Тем не менее, Акель поступает в точности как поделие микрософта, преобразуя коды символов по загадочным критериям.
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду? |
1. Запустите редактор реестра. Для этого нажмите сочетание клавиш Win+R, введите regedit и нажмите ОК или Enter.
2. Откройте раздел реестра HKEY_CURRENT_USER\Control Panel\Input Method.
3. Создайте строковый параметр EnableHexNumpad со значением 1.
4. Перезагрузите компьютер.
5. После перезагрузки компьютера запустите AkelPad, зажмите клавишу Alt, нажмите клавишу + и введите Юникод-код символа. Например, при вводе белого смайлика зажмите клавишу Alt, нажмите клавишу + и введите 263A. |
|
Back to top |
|
 |
temp1111
Joined: 26 Aug 2008 Posts: 56
|
Posted: Tue Feb 04, 2014 5:45 pm Post subject: |
|
|
А напишите кто-нибудь скрипт Egorkaru.js, чтобы он автоматически с русского на русский переводил  |
|
Back to top |
|
 |
|