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

10

Я использую 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 перед вставкой.

Берги
источник
Я предлагаю попробовать WinCompose, поскольку он позволяет вводить многоточие с помощью простой и интуитивно понятной комбинации [Alt] [.] [.].
Сэм Хоцевар
@ LưuVĩnhPhúc Нет, это совсем другой вопрос. Обратите внимание, что 8230 - это десятичный код символа многоточия, а не шестнадцатеричный.
Берги

Ответы:

6

Насколько я знаю, метод 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. Могу ли я как-нибудь включить это вручную или мне нужно написать отчет об ошибке?
Берги
1
+1 Ваше замечание, что в других программах символьное значение - мод 256 - это именно то поведение, которое я наблюдал в Блокноте.
Николь Гамильтон
4

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

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

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

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

Ƭᴇcʜιᴇ007
источник
Спасибо за информативную ссылку. Я уже видел, что есть запутанные различия при поиске проблемы :-)
Bergi
1

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

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

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

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

Synetech
источник
8230 является десятичным для шестнадцатеричного числа 2026, которое действительно является многоточием. fileformat.info/info/unicode/char/2026/index.htm Alt + 8230 работает в некоторых приложениях (например, в новом сообщении Outlook), но не в других (например, в блокноте) для меня на Win7 x64.
Николь Гамильтон
8230является десятичным символьным кодом U + 2026 ( многоточие ). Я никогда не использовал префикс +или 0, я просто удерживал Altи вводил четырехзначный десятичный код. Как сказано в вопросе, это все еще хорошо работает в Word.
Берги
Да, я уверен, что это сработало, но я думаю, что это сработало только в моих любимых приложениях: - / Hex-запись в настоящее время не включена и дает результаты , поэтому я буду придерживаться 0133
Bergi
> Шестнадцатеричная запись в настоящее время не включена. Может быть, нет, но вы можете включить ее для удобства, потому что, как я уже сказал, Windows по умолчанию не принимает 8000+ кодовых точек (в десятичном формате). Использование шестнадцатеричной записи - это настройка Windows, поэтому она работает во всех приложениях (по крайней мере, во всех, которые поддерживают поля ввода Unicode).
Synetech
0

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

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

Питер Хандорф
источник
1
Нет, шрифты поддерживают их отображение. Также я не думаю, что шрифт может влиять на метод ввода.
Берги