Come si digitano i caratteri Unicode usando codici esadecimali?


77

Questo è in Windows, ma le risposte per altri sistemi operativi possono essere utili ad altri.

La maggior parte delle guide dice qualcosa sull'effetto di "tenere premuto il tasto Alt e digitare il codice sulla tastiera". Funziona bene per i codici decimali (come 65 per 'A'), ma non per i codici esadecimali (come U + 0041 per 'A').

Alcune applicazioni forniscono altre funzionalità che consentiranno la digitazione e la trasformazione di codici di caratteri Unicode esadecimali. Word consente di digitare il codice (come 200f) e quindi convertirlo in Unicode digitando Alt-X.

Sto cercando un metodo generale per farlo che funzioni con l'input standard.


1
Questo funziona bene per i caratteri unicode che non includono caratteri esadecimali da A a F. dovrebbero essere letti: per i codici decimali . Ci sono molti numeri esadecimali che non usano AF. Come 10, che non sono dieci allora ...
Arjan,

1
È inutile per me quando devo digitare u + 23AF.
Sarà il

4
Il mio punto è: non è possibile digitare cose come u + 0041 (esadecimale 41, decimale 65) utilizzando il tastierino numerico (poiché si dovrebbe quindi digitare 65 anziché 41) - fileformat.info/info/unicode/char/0041 Quindi, usando il trucco Alt funziona bene per i codici decimali, ma non per i codici esadecimali .
Arjan,

1
@Will: il metodo "alt + NN ..." prevede la notazione decimale , non esadecimale della posizione del carattere. Unicode usa hex. Quindi, se si desidera digitare ciò che Unicode rappresenta come "U + 23AF", è necessario convertire hex == 23AF in decimale == 9135, quindi digitare "alt + 9135". Questo è l' unico metodo generale che c'è in offerta. Ma: il personaggio desiderato potrebbe non apparire come previsto nel campo di testo o nel documento, se il font attualmente selezionato non ha il posto "U + 23AF" riempito (o se non è un font Unicode in primo luogo!).
Kurt Pfeifle,

@Arjan: non si digitano caratteri esadecimali con il metodo "alt + nnn". Digiti solo codici di caratteri decimali . Ecco perché non puoi digitare nemmeno stringhe "U + 1234" diritte (che non contengono nessuno dei tuoi caratteri "af" detestati) nel tuo tastierino numerico come "alt + 1234", ma devi convertire hex == 1234 in dec = = 4660 e quindi digita "alt + 4660" prima di ( MAGGIO ) ottenere ciò che desideri. Quindi la tua affermazione "usare l'Alt-trick non funziona per i codici esadecimali" risolve esattamente il problema, ma ti sei perso di capirlo da solo :-)
Kurt Pfeifle,

Risposte:


23

La risposta di harrymc è buona, a condizione che tu sia in grado / autorizzato a modificare le impostazioni del registro.

In caso contrario, è possibile utilizzare l'accessorio calcolatrice di Windows per convertire da esadecimale a decimale. La modalità predefinita non lo farà: XP e Vista hanno una "Modalità scientifica, mentre Windows 7, 8, 8.1 e 10 hanno una modalità" Programmatore ".

Seleziona Base esadecimale , quindi digita il tuo numero esadecimale. Quindi passare a Dec base per visualizzare il valore equivalente in decimale. Questo è il numero che devi digitare nel tastierino numerico mentre tieni premuto il tasto Alt .

Ciò potrebbe dipendere dalla lingua di input e potrebbe essere necessario anteporre uno zero al valore decimale.


puoi anche calcolare con set /ain una finestra di comando ;-). Per convertire hex = 4321 in decimale, basta digitare set /a 4*16*16*16+3*16*16+2*16+1e il risultato verrà visualizzato come 17185
Kurt Pfeifle

3
In alternativa, set /a 0x4321verrà visualizzato anche 17185.
Marcks Thomas

6
La risposta è fuorviante, perché non menziona la necessità di uno zero iniziale quando si utilizza un numero decimale al di fuori dell'intervallo Ascii (> 127). Se si desidera digitare U + 23AF e quindi convertire 23AF in decimale, 9135, quindi provare a utilizzare Alt 9135, si ottiene "» "(U + 00BB). Devi digitare Alt 09135 (usando il tastierino numerico) per ottenere il carattere giusto.
Jukka K. Korpela,

8
Il metodo che utilizza i numeri decimali dipende dalla "lingua di input" (come concetto Microsoft), quindi i risultati variano in base al sistema e al programma. Ad esempio, nella maggior parte dei programmi Windows, quando la lingua del sistema è stata impostata su inglese o altra lingua occidentale, in questo modo è possibile digitare solo caratteri Windows 1 latini. Qualsiasi Alt 0n per n> 255 funzionerà quindi “modulo 256”, ovvero con n ridotto all'intervallo 0 ... 255 dividendo per 256 e prendendo il resto.
Jukka K. Korpela,

2
Questa risposta è sbagliata Alt + 0nnn (0-255) immette un carattere dalla tabella codici ANSI del sistema (ad es. 1252). Il valore inserito è modulo 256 come indicato sopra. Alt + nnn (0-255), senza zero iniziale, inserisce un carattere dalla tabella codici OEM del sistema (ad es. 437 o 850). Tuttavia, i primi 31 codici non sono i normali caratteri di controllo ASCII, ma sono invece i glifi che sono stati visualizzati per questi personaggi sui PC degli anni '80 con DOS. Nell'API di Windows, quest'ultima corrisponde all'uso del MB_USEGLYPHCHARSflag durante la decodifica dei byte in Unicode tramite MultiByteToWideChar.
Eryk Sun,

39

Trovato questo in Come inserire i caratteri Unicode in Microsoft Windows :

Ho provato questo su Windows XP e Windows 2003. Questo metodo funziona indipendentemente dalle impostazioni della lingua, ma è il più ingombrante da digitare:

  1. Tieni premuto il tasto Alt.
  2. Premere il tasto + (più) sul tastierino numerico.
  3. Digitare il valore unicode esadecimale.
  4. Rilascia il tasto Alt.

Purtroppo, questo sembra richiedere un'impostazione del registro. Era già impostato sul mio computer, ma alcuni lettori riportano che questo metodo non ha funzionato per loro, e questo è probabilmente il motivo. Se non sai qual è il registro, ti preghiamo di non provarlo. Sotto HKEY_CURRENT_USER\Control Panel\Input Method, imposta EnableHexNumpad su "1". Se devi aggiungerlo, imposta il tipo su REG_SZ.

È necessario disconnettersi quindi accedere dopo questa modifica del registro o addirittura riavviare.


1
se non so quale sia il registro, non so nemmeno provare.
Vanuan,

5
Se non sai cos'è il registro, non dovresti mai toccarlo. Chiedi aiuto a qualcuno che conosci.
Wug

+1 ma un paio di cose: (i) sia in Firefox che in IE se il codice esadecimale che stai tentando di digitare contiene un leeter corrispondente alla scorciatoia Alt + [lettera] per un menu, il menu scende e tu no ottieni il tuo personaggio (questa pausa E&F su entrambi, A su IE e B su Firefox, il blocco note funziona bene come il winkey + R "corri"); (ii) REG_SZ può apparire nel menu di scelta rapida con il tasto destro del mouse come "Registro stringa"
Chris H

Questo dovrebbe funzionare in tutte le applicazioni? L'ho fatto funzionare in Blocco note, Blocco note ++, Firefox e persino Excel, ma non in Word, Outlook, PowerPoint o Lync. Questo è su W7.
Didier L

3
Ciao harrymc. Come posso digitare le lettere contenute in esadecimale? esempio: "👉" = 👉 - dopo che ho Fpremuto il comando alt menu viene eseguito su Windows. Non vola con la conversione in decimale (128073) senza l'aggiunta di zero iniziali.
Matas Vaitkevicius,

17

Su Mac OS X: apri Internazionale in Preferenze di Sistema e nel menu Input seleziona "Unicode Hex Input" per aggiungere questa opzione al menu input. Sembra ovvio, ma questo è ben nascosto nella lunga lista di lingue, tra ucraino e vietnamita. Quando selezionato, tieni premuto Opzione e digita il codice esadecimale a 4 cifre.

Anche su OS X: la calcolatrice può essere impostata sulla modalità programmatore (Cmd-3), che consente di inserire codici decimali, ottali ed esadecimali, che vengono quindi visualizzati come ASCII o Unicode. Tuttavia, Copia fornirà uno il codice, non l'equivalente (i) carattere (i). Chiunque?

(Per Windows, vedi Come inserire i caratteri Unicode in Microsoft Windows ; per altri metodi di input vedi Wikipedia .)

E qui su Super User:

E per andare agli estremi:


9

In Ubuntu (e sue varianti, come LinuxMint) è possibile inserire i valori Unicode premendo Ctrl+ Shift+ useguito dal valore Unicode e Invio, ad esempio:

Ctrl+ Shift+ u 263aquindi inserisci i rendimenti:

Testo: ☺
Screenshot:testo alternativo

Potresti essere in grado di accoppiarlo con AutoHotkey per un input più semplice o un possibile input in Windows.


2
Sfortunatamente funziona solo nelle applicazioni GTK +.
Lumaca meccanica il

2
Puoi anche tenere premuto Ctrl-Maiusc durante la digitazione del codice, evitando in seguito di premere Invio.
Lumaca meccanica il

1
Ho trovato una soluzione migliore: puoi aggiungere segni di accento a qualsiasi carattere precedente usando Unicode combinando segni diacritici. Unicode 0301 - 0308 sono utili per Pinyin. ad esempio: "a" + [ctrl] [shift] [u] + 0301 [return] -> á. L'elenco dei pinyin: ó -> 0301; ò -> 0300; ō -> 0304; ŏ -> 0306; ö -> 0308; vedi en.wikipedia.org/wiki/Combining_character#Unicode_ranges
emf

6

Ho scritto un piccolo strumento di input Unicode basato su AutoHotkey perché non ho trovato una soluzione migliore. Puoi inserire caratteri unicode con Shift+ Ctrl+ U.

Finestra di dialogo Unicode

Fondamentalmente, converte la voce in un carattere Unicode e la "digita" nella posizione del cursore.

Non supporta caratteri unicode a 6 cifre. Inoltre, se hai un campo di input in cui è selezionato tutto il testo in caso di perdita di messa a fuoco, tutto il testo verrà sovrascritto (penso di ricordare che una vecchia versione di Firefox ha mostrato questo comportamento).

Come riferimento, qui l' origine AutoHotkey se si desidera compilarlo da soli:

#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 <simon.eu@gmail.com> / granjow.net
return

+^u::
InputBox, codepoint, Unicode code point, U+
if not ErrorLevel
    Send {U+%codepoint%}
return

2

Dipende anche da dove vuoi usare i caratteri speciali. Con le app di MS Office, non è necessario ricorrere alla conoscenza dei codici ASCII per alcuni caratteri, ad esempio per digitare una diaresi (ovvero i due punti che vedi sopra alcuni caratteri in parole come ingenuo), in Word / Outlook / ecc. Puoi premere Ctrl + ':' (cioè Ctrl + Maiusc +;) seguito da 'i'.

C'è un elenco di scorciatoie disponibili su http://word.mvps.org/FAQs/General/InsertSpecChars.htm ... basta scorrere verso il basso fino a "Caratteri internazionali".

Non so se alcune app non di Office supportano scorciatoie simili.


2

Linux (comprese le applicazioni Qt / KDE)

Come accennato da JMD, puoi tenere premuto Ctrl- Shift, digitare u1f4a9e rilasciare per digitare U + 1F4A9 nelle applicazioni GTK + (inclusi i programmi GNOME, Firefox, Chromium e LibreOffice, anche sotto KDE). Alcuni programmi supportano anche la digitazione in sequenza Ctrl- Shift- U, 1, f, 4, a, 9, Enter.

Sfortunatamente, questo non funziona nelle applicazioni Qt (inclusi programmi KDE, Mathematica e VLC). Per i caratteri BMP, esiste un metodo di input IBus Unicode. Per abilitare, aprire le preferenze IBus e aggiungere il metodo di input "Altro - unicode (m17n)" ( devono essere installati i due pacchetti ibus-m17n e ibus-qt4 ). Quando il cursore si trova in un'area di testo, attivare il metodo di input (utilizzando la barra degli strumenti IBus o la scorciatoia da tastiera). Se attivo, il metodo di input consente di digitare Ctrl- Shift- Useguito da 4 cifre esadecimali, per immettere il carattere Unicode corrispondente. Questo funziona solo per i personaggi BMP, però.

(Testato sotto Ubuntu.)


Non funziona su KDE per me ..
Jack

dove posso trovare le preferenze di IBus?
anarcat,

1

Forse non esattamente quello che stai chiedendo, ma è quello che stavo cercando. Su Windows 10, puoi premere Win+ .o Win+ ;per aprire un browser emoji:

inserisci qui la descrizione dell'immagine

Come puoi vedere nell'immagine sopra, puoi anche cercare semplicemente digitando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.