Ввод символов через Alt+####
- Author
- Message
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
Ввод символов через Alt+####
Не очень понятно, как реализован данный процесс. Покопался в исходниках - вроде все должно обрабатываться нормально, а не через задницу, как у микрософта. Тем не менее, Акель поступает в точности как поделие микрософта, преобразуя коды символов по загадочным критериям.
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду?
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду?
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
Ради бога:
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)?)
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)?)
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Для совместимости используется стандартная обработка для Alt+NumPad. AkelEdit поддерживает специальную обработку ввода символа по десятиричному коду, посредством предварительного нажатия два раза на 0. Т.е. для указанного символа необходимо ввести Alt+00338.Fr0sT wrote:U+0152 (dec 0338) имеет код Alt+0140
-
Offline
- Posts: 57
- Joined: Thu Jul 12, 2012 10:59 am
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
-
Offline
- Posts: 57
- Joined: Thu Jul 12, 2012 10:59 am
Открою вам небольшой секрет: такой способ существуетFr0sT wrote:Для меня имеет значение только то, что я не могу вменяемым способом ввести элементарное ударение (U+0769)
Создаем параметр EnableHexNumpad типа REG_SZ со значением 1. Не забываем перезагрузиться. В Блокноте набираем Alt + +301 и получаем символ ударе́ния.HKEY_CURRENT_USER\Control Panel\Input Method
-
Offline
- Posts: 46
- Joined: Fri Mar 22, 2013 5:05 am
- Location: Белово, Кемеровская область, Россия
Re: Ввод символов через Alt+####
1. Запустите редактор реестра. Для этого нажмите сочетание клавиш Win+R, введите regedit и нажмите ОК или Enter.Fr0sT wrote:Не очень понятно, как реализован данный процесс. Покопался в исходниках - вроде все должно обрабатываться нормально, а не через задницу, как у микрософта. Тем не менее, Акель поступает в точности как поделие микрософта, преобразуя коды символов по загадочным критериям.
Проще говоря, результат совпадает с ожидаемым только для тех символов, у которых в приложении "Таблица символов" указан альт-код. Если попробовать ввести десятичный Юникод-код символа, для которого альт-код не прописан - получим совершенно другой символ. Так что хотелось бы понять, что это: намеренная имитация richedit, баг или что-то еще? И как вообще вводить любые символы по их Юникод-коду?
2. Откройте раздел реестра HKEY_CURRENT_USER\Control Panel\Input Method.
3. Создайте строковый параметр EnableHexNumpad со значением 1.
4. Перезагрузите компьютер.
5. После перезагрузки компьютера запустите AkelPad, зажмите клавишу Alt, нажмите клавишу + и введите Юникод-код символа. Например, при вводе белого смайлика зажмите клавишу Alt, нажмите клавишу + и введите 263A.
-
Offline
- Posts: 157
- Joined: Thu Nov 26, 2015 8:03 pm
- Location: Rostov-on-Don
вообще-то по таблице Юникод символов U+0769 —Арабская буква noon с маленькой vFr0sT wrote:... Для меня имеет значение только то, что я не могу вменяемым способом ввести элементарное ударение (U+0769)
https://unicode-table.com/ru/0769/
у меня работает.. ударение ставится согласно таблице U+0301 — Комбинируемый акут (лёгкое ударение)
https://unicode-table.com/ru/0301/
пример: ударе́ние
старенькая тема правда, попалась вот...
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
1. Что значит "не подходит"? Если есть физическое ограничение (в виде отсутствия NumPad), то волей-неволей надо определяться "вам шашечки или ехать?".eil wrote:вопрос по этой же теме - так как на ноуте без NumPad через Alt+код получить символы?
сразу скажу, это для портативной версии, никаких правок реестра, так же "вставка символа" тут не подходит.
2. Решение с вставкой Unicod-символов по их коду с помощью скрипта показано KDJ довольно давно вот тут. Единственно, там вставка производится по шестнадцатеричному коду, а вам нужен десятичный. Поэтому в строке, где используется parseInt
Code: Select all
sText += String.fromCharCode(parseInt(sHex.substr(i, 4), 16));