¿Cómo se escriben los caracteres Unicode utilizando códigos hexadecimales?

77

Esto está en Windows, pero las respuestas para otros sistemas operativos pueden ser útiles para otros.

La mayoría de las guías dicen algo en el sentido de "mantener presionada la tecla Alt y escribir el código en el teclado". Esto funciona bien para códigos decimales (como 65 para 'A'), pero no para códigos hexadecimales (como U + 0041 para 'A').

Algunas aplicaciones proporcionan otras facilidades que permitirán escribir y luego transformar los códigos de caracteres Unicode hexadecimales. Word le permite escribir el código (como 200f) y luego convertirlo a Unicode escribiendo Alt-X.

Estoy buscando un método general para hacer esto que funcione con la entrada estándar.

Será
fuente
1
Esto funciona bien para los caracteres Unicode que no incluyen caracteres hexadecimales de la A a la F. Deben leer: para los códigos decimales . Hay muchos números hexadecimales que no usan AF. Como 10, que no son diez entonces ...
Arjan
1
Eso es inútil para mí cuando necesito escribir un u + 23AF.
Will
44
Mi punto es: tampoco puede escribir cosas como u + 0041 (hexadecimal 41, decimal 65) usando el teclado numérico (ya que uno tendría que escribir 65 en lugar de 41) - fileformat.info/info/unicode/char/0041 Entonces, usar el truco Alt funciona bien para los códigos decimales, pero no para los códigos hexadecimales .
Arjan
1
@Will: el método "alt + NN ..." espera notación decimal , no hexadecimal, de la posición del personaje. Unicode usa hexadecimal. Entonces, si desea escribir lo que Unicode representa como "U + 23AF", debe convertir hexadecimal == 23AF en decimal == 9135, y luego escribir "alt + 9135". Ese es el único método general que se ofrece. Pero: el carácter deseado aún puede no aparecer como se esperaba en el campo de texto o documento, si la fuente seleccionada actualmente no tiene el lugar "U + 23AF" lleno (¡o si no es una fuente Unicode en primer lugar!).
Kurt Pfeifle
@Arjan: no escribe caracteres hexadecimales con el método "alt + nnn". Solo escribe códigos de caracteres decimales . Es por eso que no puede escribir incluso cadenas "U + 1234" rectas (que no contienen ninguno de sus odiados caracteres "af") en su teclado numérico como "alt + 1234", pero necesita convertir hexadecimal == 1234 en dec = = 4660 y luego escribe "alt + 4660" antes de ( MAYO ) obtener lo que quieres. Entonces, su afirmación "el uso del truco Alt no funciona para los códigos hexadecimales" resuelve el problema exactamente, pero se olvidó de comprenderlo usted mismo :-)
Kurt Pfeifle

Respuestas:

23

La respuesta de harrymc es buena, siempre que pueda / pueda cambiar la configuración del registro.

De lo contrario, puede usar el accesorio Calculadora de Windows para convertir de hexadecimal a decimal. El modo predeterminado no hará esto: XP y Vista tienen un "Modo científico", mientras que Windows 7, 8, 8.1 y 10 tienen un modo "Programador".

Seleccione Base hexadecimal y luego escriba su número hexadecimal. Luego cambie a Dec base para ver el valor equivalente en decimal. Ese es el número que necesita escribir en su teclado numérico mientras mantiene presionada la tecla Alt .

Esto puede depender del idioma de entrada, y es posible que deba prefijar un cero al valor decimal.

Mike Hanson
fuente
También puede calcular con set /aen una ventana de comandos ;-). Para convertir hexadecimal = 4321 en decimal, simplemente escriba set /a 4*16*16*16+3*16*16+2*16+1y el resultado aparecerá como 17185
Kurt Pfeifle
3
Alternativamente, set /a 0x4321también mostrará 17185.
Marcks Thomas
66
La respuesta es engañosa, porque no menciona que se necesita un cero inicial cuando se usa un número decimal fuera del rango de Ascii (> 127). Si desea escribir U + 23AF y, por lo tanto, convertir 23AF a decimal, 9135, y luego intentar usar Alt 9135, obtendrá "» "(U + 00BB). Debe escribir Alt 09135 (con el teclado numérico) para obtener el carácter correcto.
Jukka K. Korpela
8
El método que utiliza números decimales depende del "idioma de entrada" (como un concepto de Microsoft), por lo que los resultados varían según el sistema y el programa. Por ejemplo, en la mayoría de los programas de Windows, cuando el idioma del sistema se ha establecido en inglés u otro idioma occidental, solo los caracteres de Windows Latin 1 se pueden escribir de esta manera. Cualquier Alt 0n para n> 255 funcionará entonces "módulo 256", es decir, con n reducido al rango 0 ... 255 dividiendo por 256 y tomando el resto.
Jukka K. Korpela
2
Esta respuesta es incorrecta. Alt + 0nnn (0-255) ingresa un carácter de la página de códigos ANSI del sistema (por ejemplo, 1252). El valor ingresado es el módulo 256 como se mencionó anteriormente. Alt + nnn (0-255), sin un cero a la izquierda, ingresa un carácter desde la página de códigos OEM del sistema (por ejemplo, 437 u 850). Sin embargo, los primeros 31 códigos no son los caracteres de control ASCII normales, sino que son los glifos que se mostraron para estos caracteres en las PC de 1980 que ejecutaban DOS. En la API de Windows, este último corresponde al uso de la MB_USEGLYPHCHARSbandera al decodificar bytes a través de Unicode MultiByteToWideChar.
Eryk Sun
39

Encontré esto en Cómo ingresar caracteres Unicode en Microsoft Windows :

Probé esto en Windows XP y Windows 2003. Este método funciona independientemente de la configuración de su idioma, pero es el más complicado de escribir:

  1. Mantenga presionada la tecla Alt.
  2. Presione la tecla + (más) en el teclado numérico.
  3. Escriba el valor unicode hexadecimal.
  4. Suelta la tecla Alt.

Por desgracia, esto parece requerir una configuración de registro. Ya estaba configurado en mi computadora, pero algunos lectores informan que este método no funcionó para ellos, y esta es probablemente la razón. Si no sabe cuál es el registro, no intente esto. Debajo HKEY_CURRENT_USER\Control Panel\Input Method, establezca EnableHexNumpad en "1". Si tiene que agregarlo, configure el tipo en REG_SZ.

Debe cerrar sesión e iniciar sesión después de este cambio de registro, o incluso reiniciar.

harrymc
fuente
1
si no sé cuál es el registro, tampoco sé cómo intentarlo.
Vanuan
55
Si no sabe cuál es el registro, no debería tocarlo nunca. Pídale ayuda a alguien que conozca.
Wug
+1 pero un par de cosas: (i) en Firefox e IE si el código hexadecimal que está tratando de escribir contiene un leeter correspondiente al acceso directo Alt + [letra] para un menú, el menú se despliega y usted no obtenga su personaje (este salto E&F en ambos, A en IE y B en Firefox, el bloc de notas funciona bien al igual que el cuadro "ejecutar" winkey + R); (ii) REG_SZ puede aparecer en el menú de entrada nueva del botón derecho como "Cadena de registro"
Chris H
¿Se supone que esto funciona en todas las aplicaciones? Lo hice funcionar en Notepad, Notepad ++, Firefox e incluso Excel, pero no en Word, Outlook, PowerPoint ni Lync. Esto está en W7.
Didier L
3
Hola harrymc ¿Cómo escribo las letras contenidas en hexadecimal? ejemplo: "👉" = 👉 después de presionar el Fcomando alt menu se ejecuta en Windows. No vuela con la conversión a decimal (128073) sin agregar ceros a la izquierda.
Matas Vaitkevicius
17

En Mac OS X: abra Internacional en Preferencias del sistema y en el Menú de entrada seleccione "Entrada hexadecimal Unicode" para agregar esta opción al menú de entrada. Suena obvio, pero esto está bien oculto en la larga lista de idiomas, entre ucraniano y vietnamita. Cuando esté seleccionado, mantenga presionada la tecla Opción y escriba el código hexadecimal de 4 dígitos.

También en OS X: la calculadora se puede configurar en modo Programador (Cmd-3), que permite ingresar códigos decimales, octales y hexadecimales, que luego se muestran como ASCII o Unicode. Sin embargo, Copiar le dará a uno el código, no los equivalentes de caracteres. ¿Nadie?

(Para Windows, consulte Cómo ingresar caracteres Unicode en Microsoft Windows ; para otros métodos de entrada, consulte Wikipedia ).

Y aquí en Super Usuario:

Y para ir a los extremos:

Arjan
fuente
9

En Ubuntu (y sus variantes, como LinuxMint), puede ingresar valores Unicode presionando Ctrl+ Shift+ useguido del valor Unicode e Enter, por ejemplo:

Ctrl+ Shift+ u 263aluego Ingrese los rendimientos:

Texto: ☺
Captura de pantalla:texto alternativo

Es posible que pueda acoplar esto con AutoHotkey para una entrada más fácil o posible entrada en Windows.

JMD
fuente
2
Desafortunadamente, solo funciona en aplicaciones GTK +.
Caracol mecánico
2
También puede mantener presionada la tecla Ctrl-Shift mientras escribe el código, lo que evita tener que presionar Enter después.
Caracol mecánico
1
He encontrado una mejor solución: puede agregar acentos a cualquier carácter anterior utilizando Unicode combinando signos diacríticos. Unicode 0301-0308 son útiles para Pinyin. por ejemplo: "a" + [ctrl] [shift] [u] + 0301 [return] -> á. La lista de pinyin: ó -> 0301; ò -> 0300; ō -> 0304; ŏ -> 0306; ö -> 0308; ver en.wikipedia.org/wiki/Combining_character#Unicode_ranges
emf
6

He escrito una pequeña herramienta de entrada Unicode basada en AutoHotkey porque no encontré una solución mejor. Puede insertar caracteres unicode con Shift+ Ctrl+ U.

Diálogo Unicode

Básicamente, convierte la entrada en un carácter unicode y la "escribe" en la posición del cursor.

No admite caracteres unicode de 6 dígitos. Además, si tiene un campo de entrada donde se selecciona todo el texto en la pérdida de enfoque, todo el texto se sobrescribirá (creo que recuerdo que una versión anterior de Firefox mostró este comportamiento).

Como referencia, aquí la fuente AutoHotkey si desea compilarlo usted mismo:

#SingleInstance force
#Persistent
;Menu, Tray, icon, unicode.ico
Menu, Tray, nostandard ; Put the following menu items on top (default: bottom)
Menu, Tray, add, Info, InfoHandler, -10
Menu, Tray, add
Menu, Tray, standard ; Add default menu items at the bottom
return

InfoHandler:
MsgBox Press Shift+Ctrl+U to get an entry field for unicode points (see decodeunicode.org for a list).`n`nAuthor: Simon A. Eugster <[email protected]> / granjow.net
return

+^u::
InputBox, codepoint, Unicode code point, U+
if not ErrorLevel
    Send {U+%codepoint%}
return
Simon A. Eugster
fuente
2

También depende de dónde quieras usar los caracteres especiales. Con las aplicaciones de MS Office, no tiene que recurrir a conocer los códigos ASCII para ciertos caracteres, por ejemplo, para escribir una diéresis (es decir, los dos puntos que ve arriba de algunos caracteres en palabras como ingenuo), en Word / Outlook / etc puede presionar Ctrl + ':' (es decir, Ctrl + Shift +;) seguido de 'i'.

Hay una lista de accesos directos disponibles en http://word.mvps.org/FAQs/General/InsertSpecChars.htm ... solo desplácese hacia abajo hasta "Caracteres internacionales".

No sé si alguna aplicación que no sea de Office admite accesos directos similares.

Chris J
fuente
2

Linux (incluidas las aplicaciones Qt / KDE)

Como se ha mencionado JMD, puede mantener pulsada Ctrl- Shift, el tipo u1f4a9, y la liberación con el fin de escribir T + 1F4A9 en aplicaciones GTK + (incluidos los programas de GNOME, Firefox, cromo y LibreOffice, incluso bajo KDE). Algunos programas también apoyan a escribir en secuencia Ctrl- Shift- U, 1, f, 4, a, 9, Enter.

Desafortunadamente, esto no funciona en aplicaciones Qt (incluidos los programas KDE, Mathematica y VLC). Para los caracteres BMP, hay un método de entrada Unicode IBus. Para habilitar, abra las preferencias de IBus y agregue el método de entrada "Otro - unicode (m17n)" (se deben instalar los dos paquetes ibus-m17n e ibus-qt4 ). Cuando el cursor está en un área de texto, active el método de entrada (usando la barra de herramientas IBus o el atajo de teclado). Mientras está activa, el método de entrada le permite escribir Ctrl- Shift- Useguido de 4 dígitos hexadecimales, para introducir el carácter Unicode correspondiente. Sin embargo, esto solo funciona para caracteres BMP.

(Probado en Ubuntu.)

Caracol mecánico
fuente
No funciona en KDE para mí ..
Jack
¿Dónde puedo encontrar las preferencias de IBus?
anarcat
1

Quizás no sea exactamente lo que estás preguntando, pero es lo que estaba buscando. En Windows 10, puede presionar Win+ .o Win+ ;para abrir un navegador emoji:

ingrese la descripción de la imagen aquí

Como puede ver en la imagen de arriba, también puede buscar simplemente escribiendo.

Aske B.
fuente