4

Я открываю Блокнот и +2295 удерживая клавишу Alt, затем отпускаю клавишу Alt. Я сохраняю файл с кодировкой Unicode. Однако вывод не является http://www.fileformat.info/info/unicode/char/2295/index.htm, как ожидалось, но это http://www.fileformat.info/info/unicode/char/2248/index .htm вместо. Что я делаю неправильно? Ищу несколько указателей.

Для всех, кто сталкивается с этим: обратите внимание, что EnableHexNumpad должен быть новым типом String (см. Ссылку на страницу Wiki в ответе)

2 ответа2

3

Запись в Википедии о методах ввода Unicode содержит список необходимых условий для этого:

Обязательным условием для этого метода ввода является то, что раздел реестра HKEY_CURRENT_USER\Control Panel\Input Method содержит значение типа строки (REG_SZ) с именем EnableHexNumpad , которое имеет значение данных 1 . Пользователям необходимо выйти / войти в Windows 8.1 / 8.0, Windows 7 и Vista или перезагрузить более ранние системы после редактирования реестра, чтобы этот метод ввода начал работать.

После того, как я добавил этот раздел реестра на свою машину и перезагрузил, ввод работает так же, как объявлено.

2

Чтобы ответить на вопрос, почему это конкретное значение присутствует:

При стандартном методе ввода десятичные числа берутся по модулю 256, а затем интерпретируются как кодовая страница OEM *, если нет начального нуля, или кодовая страница ANSI, если есть начальный ноль. Итак, шаги:

  • 2295 мод 256 = 247
  • 247 [0xF7] - это U+2295 в кодовой странице OEM.

Наборы символов, которые имеют U+2295 в этом зелье, являются кодовыми страницами 437, 737, 770, 772, 774, 860, 861, 862, 863, 864, 865, CWI и MIK.

(Тот факт, что "2295" и "2248" начинаются с 22, является интересным совпадением, не более того)

* Примечание: "Кодовая страница ANSI" имеет мало общего с ANSI, за исключением того, что кодовая страница 1252 была основана на черновике того, что позже стало ISO 8859-1 [и некоторые другие имели аналогичное происхождение]. Это 8-битный набор символов, связанный с текущим языковым стандартом, а "OEM Code Page" - это другой набор символов, связанный с языковым стандартом, обычно тот, который использовался в MS-DOS в этой стране.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .