Как ввести юникод с клавиатуры linux

Обновлено: 04.07.2024

В окнах есть возможность набирать с клавиатуры специальные знаки, удерживая клавишу alt и вводить несколько цифр, что зависит от знака, который вы хотите использовать. Работает ли он с Linux таким же образом?

Вы можете использовать Ctrl + Shift + u , за которым следует код hex . (Вам нужно только удерживать Ctrl и Shift при вводе кода)

X использует что-то, называемое составлением ключа . Нажав Compose , некоторый ключ , некоторый ключ â € | в последовательности, вы можете вводить символы. У меня есть ключ для компоновки в Меню ; для ввода символа © (символ авторского права) я бы использовал Menu , o , c .

Полный список комбинаций ключевых слов X можно найти онлайн (200 KiB) или локально в /usr/share/X11/locale/en_US.UTF-8/Compose .

В Gnome ключ компоновки можно установить, перейдя в «Настройки» â «Клавиатура â †« Вкладка «Макеты» â † «Параметры макета» â † «Составьте положение клавиши.

Ввод символов Unicode в Linux различается. UTF-8 и Unicode FAQ содержит раздел, содержащий различные методы ввода :

  • Ctrl + Shift + U [unicode in hex] определяется в ISO 14755 и реализован GTK2 +, а также работает в GNOME-Terminal и других приложениях.
  • Ctrl + V u [unicode in hex] работает в VIM.
  • Alt + [unicode in decimal using numpad digits] работает на консоли, при условии, что ваша среда настроена так, чтобы ожидать UTF-8 (через переменные среды LOCALE или LANG). ( unicode_start manpage ).

Другие методы, которые вы могли бы использовать:

  • Вырезать-вставить символы из небольшого входного файла, содержащего нужные вам символы.
  • Используйте xmodmap для переназначения ключей в X (см. ссылку на часто задаваемые вопросы выше).

Консоль Linux также поддерживает компоновку ключей (часто используется клавиша компоновки Alt + AltGr или PrintScrn ) - см. Как определить ключ Compose в терминале в Unix и Linux Stack Exchange для деталей.

Есть лучший метод для Linux и Windows, чем использование кодов с альт-ключами, которые не требуют запоминания каких-либо кодов. Он подробно описан здесь ,

Приведенный пример имеет /delta в качестве триггера (включая косую черту). После ввода этих шести символов они удаляются и заменяются символом Î'.

Это в Windows, но ответы для других операционных систем могут быть полезны для других.

В большинстве руководств говорится что-то вроде «зажмите клавишу Alt и введите код на клавиатуре». Это прекрасно работает для десятичных кодов (например, 65 для «A»), но не для шестнадцатеричных кодов (например, U + 0041 для «A»).

Некоторые приложения предоставляют другие средства, которые позволяют вводить шестнадцатеричные коды символов Unicode, а затем преобразовывать их. Word позволяет вводить код (например, 200f), а затем преобразовывать его в Unicode, набрав Alt-X.

Я ищу общий способ сделать это, который будет работать со стандартным вводом.

Это прекрасно работает для символов Юникода, которые не включают шестнадцатеричные символы от A до F., следует читать: для десятичных кодов . Есть много шестнадцатеричных чисел, которые не используют AF. Как 10, что не десять тогда . Это бесполезно для меня, когда мне нужно набрать u + 23AF. Моя точка зрения такова: вы не можете набирать такие вещи, как u + 0041 (шестнадцатеричный 41, десятичный 65), используя цифровую клавиатуру либо (как тогда нужно будет набрать 65, а не 41) - fileformat.info/info/unicode/char/0041 Таким образом, использование Alt-trick прекрасно работает для десятичных кодов, но не для шестнадцатеричных кодов . @Will: метод «alt + NN . » ожидает десятичное , а не шестнадцатеричное представление позиции символа. Юникод использует hex. Поэтому, если вы хотите ввести то, что Unicode представляет как «U + 23AF», вам нужно преобразовать hex == 23AF в десятичное == 9135, а затем набрать «alt + 9135». Это единственный общий метод, который предлагается. Но: требуемый символ может по-прежнему не отображаться должным образом в текстовом поле или документе, если выбранный в данный момент шрифт не заполнен местом «U + 23AF» (или если он не является шрифтом Unicode в первую очередь!). @Arjan: вы не вводите шестнадцатеричные символы с помощью метода «alt + nnn». Вы вводите только десятичные коды символов. Вот почему вы не можете набирать даже прямые строки «U + 1234» (которые не содержат ни одного из ваших ненавистных символов «af») на вашей цифровой клавиатуре как «alt + 1234», но вам необходимо преобразовать hex == 1234 в dec = = 4660, а затем введите «alt + 4660», прежде чем ( МОЖЕТ ) получить то, что вы хотите. Таким образом, ваше утверждение «использование Alt-трюка не работает для шестнадцатеричных кодов» точно решает проблему, но вы упустили возможность понять это сами :-)

Ответ harrymc хорош, если вы можете / можете изменять настройки реестра.

Если нет, вы можете использовать Windows Calculator Accessory для преобразования из шестнадцатеричного в десятичное. Режим по умолчанию не будет этого делать: XP и Vista имеют «Научный режим», тогда как Windows 7, 8, 8.1 и 10 имеют режим «Программист».

Выберите шестнадцатеричное основание, а затем введите шестнадцатеричное число. Затем перейдите к основанию Dec, чтобы увидеть эквивалентное значение в десятичном виде Это число, которое нужно набрать на цифровой клавиатуре, удерживая нажатой клавишу Alt .

Это может зависеть от языка ввода, и вам может потребоваться префикс ноль к десятичному значению.

Вы также можете рассчитать с помощью set /a в командном окне ;-). Чтобы преобразовать hex = 4321 в десятичное число, просто введите, set /a 4*16*16*16+3*16*16+2*16+1 и результат будет отображаться как 17185 Кроме того, set /a 0x4321 также будет отображаться 17185. Ответ вводит в заблуждение, потому что он не упоминает, что ведущий ноль необходим при использовании десятичного числа вне диапазона Ascii (> 127). Если вы хотите набрать U + 23AF и, следовательно, преобразовать 23AF в десятичное, 9135, а затем попытаться использовать Alt 9135, вы получите «» »(U + 00BB). Вам нужно набрать Alt 09135 (используя цифровую клавиатуру), чтобы получить правильный символ. Метод с использованием десятичных чисел зависит от «языка ввода» (как концепция Microsoft), поэтому результаты зависят от системы и программы. Например, в большинстве программ Windows, когда системный язык установлен на английский или другой западный язык, таким образом можно вводить только символы латинского алфавита Windows 1. Любой Alt 0n для n> 255 будет тогда работать «по модулю 256», то есть с уменьшением n до диапазона 0 . 255 путем деления на 256 и взятия остатка. Этот ответ неверен. Alt + 0nnn (0-255) вводит символ из кодовой страницы ANSI системы (например, 1252). Введенное значение по модулю 256, как указано выше. Alt + nnn (0-255) без начального нуля вводит символ из кодовой страницы OEM системы (например, 437 или 850). Однако первые 31 код не являются обычными управляющими символами ASCII, а представляют собой глифы, которые отображались для этих символов на компьютерах 1980-х годов, работающих под DOS. В Windows API последний соответствует использованию MB_USEGLYPHCHARS флага при декодировании байтов в Unicode через MultiByteToWideChar .

Вы должны выйти из системы, а затем войти в нее после изменения реестра или даже перезагрузить компьютер.

если я не знаю, что такое реестр, то я не знаю, как попробовать ни того, ни другого. Если вы не знаете, что такое реестр, вы никогда не должны его трогать. Попросите кого-нибудь, кого вы знаете, о помощи. +1, но несколько вещей: (i) в Firefox и IE, если шестнадцатеричный код, который вы пытаетесь ввести, содержит букву, соответствующую сочетанию клавиш Alt + [буква] для меню, меню выпадает, и вы не получить вашего персонажа (это разрыв E & F на обоих, A на IE и B на Firefox, блокнот работает нормально, как и окно winkey + R "run"); (ii) REG_SZ может появиться в новом элементе меню при щелчке правой кнопкой мыши как «Строка реестра» Это должно работать во всех приложениях? Я получил его для работы в блокноте, notepad ++, Firefox и даже Excel, но не в Word, Outlook, PowerPoint или Lync. Это на W7.

В Mac OS X: откройте «Международный» в «Системных настройках» и в «Меню ввода» выберите «Шестнадцатеричный ввод Unicode», чтобы добавить эту опцию в меню ввода. Звучит очевидно, но это хорошо спрятано в длинном списке языков, между украинским и вьетнамским. Когда выбрано, удерживайте Option и введите 4-значный шестнадцатеричный код.

Также в OS X: калькулятор может быть установлен в режим программирования (Cmd-3), который позволяет вводить десятичные, восьмеричные и шестнадцатеричные коды, которые затем отображаются как ASCII или Unicode. Однако Copy даст один код, а не символьный эквивалент (ы). Кто угодно?

А вот на Super User:

И впадать в крайности

В Ubuntu (и его вариантах, например LinuxMint) вы можете вводить значения Unicode, нажимая Ctrl + Shift +, u а затем значение Unicode и Enter, например:

Ctrl + Shift + u 2 6 3 a затем введите доходность:

альтернативный текст

Текст: ☺
Снимок экрана:

Вы можете связать это с AutoHotkey для более легкого ввода или возможного ввода в Windows.

Вы также можете удерживать нажатой клавишу Ctrl-Shift при вводе кода, что позволяет избежать необходимости нажимать Enter впоследствии.

Я написал небольшой инструмент ввода Unicode на основе AutoHotkey, потому что я не нашел лучшего решения. Вы можете вставить символы Юникода с помощью Shift + Ctrl + U .

Диалог Юникод

По сути, он преобразует запись в символ Unicode и «печатает» ее в позиции курсора.

Он не поддерживает 6-значные символы Юникода. Кроме того, если у вас есть поле ввода, где весь текст выделен при потере фокуса, весь текст будет перезаписан (я думаю, я помню, что старая версия Firefox показала такое поведение).

Для справки, вот источник AutoHotkey, если вы хотите скомпилировать его самостоятельно:

Это также зависит от того, где вы хотите использовать специальные символы. С приложениями MS Office вам не нужно прибегать к знанию кодов ASCII для определенных символов - например, для ввода диареза (т. Е. Двух точек, которые вы видите над некоторыми символами в словах, таких как наивный), в Word / В Outlook / и т. Д. Вы можете нажать Ctrl + ':' (то есть Ctrl + Shift +;), а затем «i».

Я не знаю, поддерживают ли подобные приложения ярлыки в приложениях, не принадлежащих Office.

Как упоминалось в JMD, вы можете удерживать Ctrl - Shift , набирать u1f4a9 и отпускать, чтобы набирать U + 1F4A9 в приложениях GTK + (включая программы GNOME, Firefox, Chromium и LibreOffice, даже в KDE). Некоторые программы также поддерживают ввод в последовательности Ctrl - Shift - U , 1 , f , 4 , a , 9 , Enter .

К сожалению, это не работает в приложениях Qt (включая программы KDE, Mathematica и VLC). Для символов BMP есть метод ввода Unicode IBus. Для включения откройте настройки IBus и добавьте метод ввода «Other - unicode (m17n)» ( должны быть установлены два пакета ibus- m17n и ibus-qt4 ). Когда курсор находится в текстовой области, активируйте метод ввода (используя панель инструментов IBus или сочетание клавиш). Будучи активным, метод ввода позволяет вам ввести Ctrl - Shift -, U а затем 4 шестнадцатеричных цифры, чтобы ввести соответствующий символ Unicode. Это работает только для персонажей BMP.

(Проверено под Ubuntu.)

Возможно, не совсем то, что вы спрашиваете, но это то, что я искал. В Windows 10 вы можете нажать Win + . или Win +, ; чтобы открыть браузер Emoji:

введите описание изображения здесь

Как вы можете видеть на изображении выше, вы также можете искать, просто набрав.

в windows есть возможность вводить с клавиатуры специальные знаки, удерживая клавишу alt и набрав несколько цифр, что зависит от знака, который вы хотите использовать. Работает ли он с linux таким же образом?

можно использовать Ctrl + Shift + u затем код hex. (Вам нужно только удерживать Ctrl и Shift при вводе кода)

X использует то, что называется compose ключ. Нажав Compose , какой-то ключ , какой-то ключ . в последовательности можно вводить символы. У меня ключ compose установлен в Menu ; тип © (символ авторского права), я хотел бы использовать Menu , o , c .

полный список комбинаций клавиш X compose можно найти онлайн (200 кб), или локально в /usr/share/X11/locale/en_US.UTF-8/Compose .

в Gnome, клавиша compose может быть установлена, перейдя в настройки → Клавиатура → вкладка макеты → параметры макета → положение клавиши Compose.

ввод символов Юникода в Linux варьируется. The UTF-8 и Unicode FAQ есть раздел, содержащий различные методы ввода:

  • Ctrl + Shift + U [unicode in hex] определена в ISO 14755 и реализован GTK2+, и работает в GNOME-Terminal и других приложениях.
  • Ctrl + V u [unicode in hex] работает в ЭНЕРГИЯ.
  • Alt + [unicode in decimal using numpad digits] работает в консоли при условии, что ваша среда правильно настроена на ожидание UTF-8 (через переменные окружения LOCALE или LANG). (unicode_start manpage).

другие методы вы могли бы использовать:

  • вырезать-N-вставить символы из небольшого входного файла, содержащего нужные символы.
  • использовать xmodmap для переназначения ключей в X (см. ссылку FAQ выше образцы.)

консоль Linux также поддерживает клавиши compose (клавиша compose часто Alt + AltGr или PrintScrn ) - см. как определить ключ Compose в терминале на Unix и Linux Stack Exchange для деталей.

существует лучший метод для Linux и Windows, чем использование кодов alt-клавиш, которые не требуют запоминания каких-либо кодов. Это подробно описано здесь.

данный пример имеет / delta в качестве триггера (включая косую черту). После ввода этих шести символов, они удаляются и заменяются δ.

Это в Windows, но ответы для других операционных систем могут быть полезны другим.

В большинстве руководств говорится о том, что «удерживайте клавишу Alt и введите код на клавиатуре». Это отлично подходит для десятичных кодов (например, 65 для «A»), но не для шестнадцатеричных кодов ( например U + 0041 для «A»).

В некоторых приложениях предусмотрены другие возможности, которые позволят ввести шестнадцатеричные коды символов Юникода и затем преобразовать. Word позволяет ввести код (например, 200f), а затем преобразовать его в Юникод, набрав Alt-X.

Я ищу общий метод выполнения этого, который будет работать со стандартным вводом.

Ответ harrymc хорош, если вы в состоянии /можете изменить настройки реестра.

Если нет, вы можете использовать аксессуар калькулятора Windows для преобразования из шестнадцатеричного в десятичный. Режим по умолчанию не будет делать этого: XP и Vista имеют «научный режим», тогда как Windows 7, 8, 8.1 и 10 имеют режим «Программист».

Выберите Hex базу, а затем введите шестнадцатеричное число. Затем перейдите в базу Dec , чтобы увидеть эквивалентное значение в десятичной системе. Это номер, который вам нужно ввести в цифровую клавиатуру, удерживая клавишу Alt .

Этот может зависеть от языка ввода, и вам может потребоваться префикс от нуля до десятичного значения.

  1. Нажмите и удерживайте клавишу Alt.
  2. Нажмите клавишу + (плюс) на цифровой клавиатуре.
  3. Введите значение шестнадцатеричного уникода.
  4. Отпустите клавишу Alt.

Вы должны выйти из системы, затем войти в систему после изменения реестра или даже перезагрузить.

В Mac OS X: откройте International в системных настройках и в меню ввода выберите «Unicode Hex Input», чтобы добавить эту опцию в меню ввода. Звучит очевидно, но это хорошо скрыто в длинном списке языков, между украинским и вьетнамским. Когда выбрано, удержите опцию и введите шестизначный шестнадцатеричный код.

Также в OS X: Калькулятор может быть установлен в режим программирования (Cmd-3), который позволяет вводить десятичные, восьмеричные и шестнадцатеричные коды, которые затем отображаются как ASCII или Unicode. Тем не менее, Копия даст один код, а не эквивалент (ы) символа. Кто-нибудь?

И здесь, на Super User:

И чтобы перейти в крайности:

В Ubuntu (и его вариантах, например LinuxMint) вы можете ввести значения Unicode, нажав Ctrl + Shift + u , за которым следует Unicode значение и Enter, например:

Ctrl + Shift + u 2 6 3 a , затем введите yields:

alt text

º
Снимок экрана:

Возможно, вы сможете связать это с AutoHotkey для упрощения ввода или возможного ввода в Windows.

Я написал небольшой файл AutoHotkey Инструмент ввода Unicode , потому что я не нашел лучшего решение. Вы можете вставлять символы Unicode с помощью Shift + Ctrl + U .

 Unicode dialog

В основном, он преобразует запись в символ юникода и «типы» в позиции курсора.

Он не поддерживает шестизначные символы юникода. Кроме того, если у вас есть поле ввода, где весь текст выбран при потере фокуса, весь текст будет перезаписан (я думаю, что я помню, что в старой версии Firefox было показано это поведение).

В качестве ссылки, здесь AutoHotkey источник, если вы хотите скомпилировать его самостоятельно:

Это также зависит от того, где вы хотите использовать специальные символы. В приложениях MS Office вам не нужно прибегать к знанию кодов ASCII для определенных символов - например, для ввода диарейиса (т. Е. Двух точек, которые вы видите над некоторыми символами в словах, таких как naó¯ve), в Word /Outlook /etc вы можете нажать Ctrl + ':' (т. Е. Ctrl + Shift +;), за которым следует 'i'.

Я не знаю, поддерживают ли какие-либо приложения не для Office аналогичные ярлыки.

Как упоминалось в JMD, вы можете удерживать Ctrl - Shift , введите u1f4a9 и отпустите, чтобы ввести U + 1F4A9 в GTK + приложений (включая программы GNOME, Firefox, Chromium и LibreOffice, даже в KDE). Некоторые программы также поддерживают типизацию в последовательности Ctrl - Shift - U , 1 , f , 4 , a , 9 , Введите .

К сожалению, это не работает в Qt-приложениях (включая программы KDE, Mathematica и VLC). Для символов BMP существует метод ввода Unicode IBus. Чтобы включить, откройте настройки IBus и добавьте метод ввода «Other - unicode (m17n)» (должны быть установлены два пакета ibus-m17n и ibus-qt4 ). Когда курсор находится в текстовой области, активируйте метод ввода (с помощью панели инструментов IBus или сочетания клавиш). При активном методе ввода вы можете ввести Ctrl - Shift - U , а затем 4 шестнадцатеричных цифры, чтобы ввести соответствующий символ Юникода. Однако это работает только для символов BMP.

(проверено под Ubuntu.)

Возможно, не совсем то, что вы просите, но это то, что я искал. В Windows 10 вы можете нажать Win + . или Win + ; , чтобы открыть браузер emoji:

Читайте также: