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

Я использую 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, но ни в Opera, ни в Notepad++ - там код символа переводится с модулем 256 перед вставкой.

4 ответа

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

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

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

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

Альт-коды для 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), так что вам, вероятно, будет более удачно его использовать.

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

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

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

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

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

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

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

Другие вопросы по тегам