Больше нельзя использовать Alt-код для вставки символов Unicode

12500
Bergi

Я использую Alt-код для многоточия 8230 уже некоторое время в нескольких приложениях. Несколько дней назад он перестал работать, и &отображается вместо нажатия Alt+ 8+ 2+ 3+ 0(на цифровой клавиатуре). Это произошло как на моем рабочем столе, так и на моем ноутбуке (где я использую его Fn). Оба работают на 64bit-Win-7 с кодовой страницей 850, и оба, возможно, недавно обновили Windows и Opera 12.

Что может быть причиной того, что этот метод ввода был отключен, и как я могу переключить его обратно ?

Кстати, я только что узнал, что Alt+ 0+ 1+ 3+ 3работает. Кроме того, я обнаружил, что Alt+ 8+ 2+ 3+ по- 0прежнему работает в WordPad или MsWord10, но ни в опере, ни Notepad ++ - есть символьный код не переводится модуль 256 перед вставкой.

7
Я предлагаю попробовать [WinCompose] (https://github.com/samhocevar/wincompose), поскольку он позволяет вводить многоточие `…` с помощью простой и интуитивно понятной комбинации `[Alt]` `[.]` `[. ] `. sam hocevar 8 лет назад 0
Возможный дубликат [Как вы печатаете символы Юникода с использованием шестнадцатеричных кодов?] (Https://superuser.com/questions/13086/how-do-you-type-unicode-characters-using-hexadecimal-codes) phuclv 7 лет назад 3
@ LưuVĩnhPhúc Нет, это совсем другой вопрос. Обратите внимание, что 8230 - это десятичный код символа многоточия, а не шестнадцатеричный. Bergi 7 лет назад 0

4 ответа на вопрос

5
Jukka K. Korpela

Насколько я знаю, метод Alt nnnn (nnnn decimal> 255) является функцией RichEdit и поэтому работает только с некоторыми программами, такими как WordPad и MS Word. В других программах введенное число nnnn уменьшается по модулю 256, чтобы получить число в диапазоне 0 ... 255, интерпретируемое в соответствии с используемой кодовой страницей.

Ср чтобы вставить символы Unicode с помощью клавиатуры? который описывает некоторые альтернативные методы. К сожалению, метод Alt + xxxx (xxxx шестнадцатеричный; например, Alt + 2026 для «…») явно отключен по умолчанию, и вам нужно изменить реестр Windows, чтобы разрешить его. В дополнение к утилите UnicodeInput, есть также Unicode Input by Name, но эти методы не так удобны для быстрой печати, как Alt.

Спасибо, это правильное направление. По-видимому, Opera 12 отказалась от этой функции RichEdit. Можно ли как-то включить это вручную или мне нужно написать отчет об ошибке? Bergi 11 лет назад 0
+1 Ваше замечание, что в других программах символьное значение - мод 256 - это именно то поведение, которое я наблюдал в Блокноте. Nicole Hamilton 11 лет назад 0
+1 | Вау, наконец-то я это знаю. Благодарю. ALT + 010084 = d или ❤. neverMind9 5 лет назад 0
3
Ƭᴇcʜιᴇ007

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

По сути, речь идет о кодировке символов и кодовых страницах, а не о шрифтах или вводе пользователем.

Альтернативные коды для ASCII - только 0-255 (8-битная кодовая страница). Многие программы (и ОС) имеют дело с большими числами, вводимыми пользователем путем переноса в 256.

256 = 0, 257 = 1 и т. Д.

Таким образом, ввод ALT + 8230 фактически эквивалентен вводу ALT + 38 (8230/256 = 32.1484375. 256 * 32 = 8192. 8230 - 8192 = 38), что является символом ASCII "&" - если только программа не перехватывает его и заменяет его «правильными» кодами Unicode или используя другую кодовую страницу (например, Unicode), как, например, MS Word и более новые версии WordPad.

Windows использует расширенную версию 8-битной кодовой страницы MSDOS (850), называемую кодовой страницей « Windows-1252 » (в любом случае для английских языков). Но он использует это только для устаревших частей ОС, которые не полностью поддерживают кодовые страницы Unicode.

По этим причинам вы можете легко увидеть разные результаты в разных ОС и приложениях, а также в разных частях самой Windows.

Это запутанная проблема, если не сказать больше. :)

Я почти уверен, что Alt-0133 - это «официальный» расширенный код Windows ALT для многоточия (в кодовой странице Windows), так что вам, вероятно, будет более удачно его использовать.

Вот еще немного связанной информации .

Спасибо за информативную ссылку. Я уже видел, что есть запутанные различия при поиске проблемы :-) Bergi 11 лет назад 0
1
Synetech

U + 8230 не многоточие, это персонаж Хан военный корабль : . Я не знаю, почему вы когда-либо получали многоточие с этим кодом, но 133 действительно правильный код для него.

Где именно, где вы видите многоточие для 8230? Возможно, это была ошибка в Opera, которая была исправлена ​​с момента последнего обновления. Если это было в «нескольких приложениях», то, возможно, у вас была ошибка в шрифте или раскладке клавиатуры / региональных настройках или что-то в этом роде (на ум не приходит ничего очевидного или рационального, поэтому это должна быть ошибка, а не допустимая настройка).

Если (по какой-то причине) вы действительно хотите / должны использовать неправильную кодовую точку для нее вместо правильной, вы можете использовать что-то вроде Authotkey для создания скрипта, который принимает аккорд или последовательность и выводит то, что вы хотите ,

Вы уверены, что смогли ввести Alt+ Numpad-8+ Numpad-0+ Numpad-2+ Numpad-3? Хотя некоторые программы могут независимо поддерживать его, Windows по умолчанию не принимает такие высокие кодовые точки Unicode. Вы можете использовать шестнадцатеричный ввод, хотя: Alt+ Numpad-++ 2+ 0+ 2+ 6.

8230 является десятичным для шестнадцатеричного числа 2026, которое действительно является многоточием. http://www.fileformat.info/info/unicode/char/2026/index.htm Alt + 8230 работает в некоторых приложениях (например, в новом сообщении Outlook), но не в других (например, в блокноте) для меня на Win7 x64. Nicole Hamilton 11 лет назад 0
`8230` - это десятичный код символа [U + 2026] (http://www.fileformat.info/info/unicode/char/2026/index.htm) ([Ellipsis] (http: //en.wikipedia. орг / вики / Многоточие)). Я никогда не использовал префикс `+` или `0`, я просто удерживал` Alt` и вводил четырехзначный десятичный код. Как сказано в вопросе, это все еще хорошо работает в Word. Bergi 11 лет назад 0
Да, я уверен, что это сработало, но я думаю, что это сработало только в моих любимых приложениях: - / Hex-запись в настоящее время не включена и выдает `→`, поэтому я буду придерживаться `0133`… Bergi 11 лет назад 0
*> Шестнадцатеричная запись в настоящее время не включена * Возможно, нет, но вы можете включить ее для удобства, потому что, как я уже сказал, Windows по умолчанию не принимает 8000+ кодовых точек (в десятичном формате). Использование шестнадцатеричной записи - это настройка Windows, поэтому она работает во всех * приложениях (по крайней мере, во всех, которые поддерживают поля ввода Unicode). Synetech 11 лет назад 0
0
Peter Hahndorf

Возможно, текущий шрифт не поддерживает такие символы верхнего Unicode, измените шрифт на «Arial» и попробуйте снова.

Когда я проверяю это в WordPad, ALT + 8 + 2 + 3 + 0 работает для Arial, но не для некоторых других шрифтов.

Нет, шрифты поддерживают их отображение. Также я не думаю, что шрифт может влиять на метод ввода. Bergi 11 лет назад 1