Como você digita caracteres Unicode usando códigos hexadecimais?

77

Isso está no Windows, mas as respostas para outros sistemas operacionais podem ser úteis para outras pessoas.

A maioria dos guias diz algo como "mantenha pressionada a tecla Alt e digite o código no teclado". Isso funciona bem para códigos decimais (como 65 para 'A'), mas não para códigos hexadecimais (como U + 0041 para 'A').

Alguns aplicativos fornecem outros recursos que permitem que códigos de caracteres Unicode hexadecimais sejam digitados e depois transformados. O Word permite que você digite o código (como 200f) e depois converta-o para Unicode, digitando Alt-X.

Estou procurando um método geral de fazer isso que funcione com a entrada padrão.

Vai
fonte
11
Isso funciona bem para caracteres unicode que não incluem caracteres hexadecimais de A a F. devem ler: para códigos decimais . Existem muitos números hexadecimais que não usam AF. Como 10, que não é de dez então ...
Arjan
11
Isso é inútil para mim quando preciso digitar um u + 23AF.
Will
4
Meu argumento é: você não pode digitar coisas como u + 0041 (hex 41, decimal 65) usando o teclado numérico (como seria necessário digitar 65 em vez de 41) - fileformat.info/info/unicode/char/0041 Portanto, usar o truque Alt funciona bem para códigos decimais, mas não para códigos hexadecimais .
Arjan
11
@ Will: o método "alt + NN ..." espera uma notação decimal e não hexadecimal da posição do caractere. Unicode usa hexadecimal. Portanto, se você quiser digitar o que Unicode representa como "U + 23AF", precisará converter hex == 23AF em decimal == 9135 e digite "alt + 9135". Esse é o único método geral disponível. Mas: o caractere desejado ainda pode não aparecer como esperado no campo ou documento de texto, se a fonte selecionada no momento não tiver o lugar "U + 23AF" preenchido (ou se não for uma fonte Unicode em primeiro lugar!).
Kurt Pfeifle
@Arjan: você não digita caracteres hexadecimais com o método "alt + nnn". Você digita apenas códigos de caracteres decimais . É por isso que você não pode digitar nem mesmo as seqüências de caracteres "U + 1234" (que não contêm nenhum dos seus odiados caracteres "af") no teclado numérico como "alt + 1234", mas é necessário converter hex == 1234 em dec = = 4660 e digite "alt + 4660" antes de ( MAIO ) obter o que deseja. Assim, a sua declaração "usando o Alt-trick não funciona para códigos hexadecimal" pregos o problema exatamente, mas você perdeu a compreendê-la a si mesmo :-)
Kurt Pfeifle

Respostas:

23

A resposta da harrymc é boa, desde que você possa / possa alterar as configurações do registro.

Caso contrário, você pode usar o Acessório da Calculadora do Windows para converter de hexadecimal para decimal. O modo padrão não faz isso: o XP e o Vista têm um modo "Científico, enquanto o Windows 7, 8, 8.1 e 10 têm o modo" Programador ".

Selecione Base hexagonal e digite seu número hexadecimal. Mude para Dec base para ver o valor equivalente em decimal. Esse é o número que você precisa digitar no teclado numérico enquanto mantém pressionada a tecla Alt .

Isso pode depender do idioma de entrada e você pode precisar prefixar um zero no valor decimal.

Mike Hanson
fonte
você também pode calcular com set /aem uma janela de comando ;-). Para converter hex = 4321 em decimal, basta digitar set /a 4*16*16*16+3*16*16+2*16+1e o resultado aparecerá como 17185 #
Kurt Pfeifle
3
Como alternativa, set /a 0x4321também exibirá 17185.
Marcks Thomas
6
A resposta é enganosa, porque não menciona que um zero inicial é necessário ao usar um número decimal fora do intervalo Ascii (> 127). Se você deseja digitar U + 23AF e, portanto, converter 23AF em decimal, 9135 e, em seguida, tentar usar a Alt 9135, obtém "» "(U + 00BB). Você precisa digitar Alt 09135 (usando o teclado numérico) para obter o caractere certo.
Jukka K. Korpela 9/09/13
8
O método que usa números decimais depende do "idioma de entrada" (como um conceito da Microsoft), portanto os resultados variam de acordo com o sistema e o programa. Por exemplo, na maioria dos programas do Windows, quando o idioma do sistema foi definido para inglês ou outro idioma ocidental, somente os caracteres do Windows Latin 1 podem ser digitados dessa maneira. Qualquer Alt 0n para n> 255 funcionará "módulo 256", ou seja, com n reduzido para o intervalo de 0 a 255, dividindo por 256 e tomando o restante.
Jukka K. Korpela
2
Esta resposta está errada. Alt + 0nnn (0-255) insere um caractere da página de códigos ANSI do sistema (por exemplo, 1252). O valor digitado é o módulo 256, como mencionado acima. Alt + nnn (0-255), sem um zero à esquerda, insere um caractere da página de códigos OEM do sistema (por exemplo, 437 ou 850). No entanto, os 31 primeiros códigos não são os caracteres de controle ASCII normais, mas os glifos que foram exibidos para esses caracteres nos PCs dos anos 80 que executam o DOS. Na API do Windows, o último corresponde ao uso do MB_USEGLYPHCHARSsinalizador ao decodificar bytes para Unicode via MultiByteToWideChar.
Eryk Sun
39

Encontrei isso em Como inserir caracteres Unicode no Microsoft Windows :

Eu testei isso no Windows XP e no Windows 2003. Esse método funciona independentemente de qualquer uma das configurações de idioma, mas é o mais complicado de digitar:

  1. Pressione e mantenha pressionada a tecla Alt.
  2. Pressione a tecla + (mais) no teclado numérico.
  3. Digite o valor hexadecimal unicode.
  4. Solte a tecla Alt.

Infelizmente, isso parece exigir uma configuração do registro. Ele já estava definido no meu computador, mas alguns leitores relatam que esse método não funcionou para eles, e provavelmente é por isso. Se você não sabe o que é o registro, não tente isso. Em HKEY_CURRENT_USER\Control Panel\Input Method, defina EnableHexNumpad como "1". Se você precisar adicioná-lo, defina o tipo como REG_SZ.

Você deve fazer logoff e logon após essa alteração no registro ou até mesmo reiniciar.

harrymc
fonte
11
se eu não souber o que é o registro, também não sei como tentar.
Vanuan
5
Se você não sabe o que é o registro, nunca deve tocá-lo. Peça ajuda a alguém que você conhece.
quer
+1, mas algumas coisas: (i) no Firefox e no IE, se o código hexadecimal que você está tentando digitar contiver um leeter correspondente ao atalho Alt + [letra] de um menu, o menu será suspenso e você não obtenha seu personagem (esse intervalo E&F em ambos, A no IE e B no Firefox, o bloco de notas funciona bem como o winkey + R "corre" na caixa); (ii) REG_SZ pode aparecer no botão direito do mouse novo menu de entrada como "String Registro"
Chris H
Isso deve funcionar em todos os aplicativos? Consegui fazê-lo funcionar no bloco de notas, bloco de notas ++, Firefox e até Excel, mas não no Word, Outlook, PowerPoint ou Lync. Isso é no W7.
Didier L
3
Oi harrymc. Como digito as letras contidas em hexadecimal? exemplo: "👉" = 👉 - depois que eu clico em Falt, o comando do menu é executado no Windows. Ele não voa com a conversão para decimal (128073), sem adicionar zeros à esquerda.
Matas Vaitkevicius
17

No Mac OS X: abra Internacional em Preferências do sistema e, no menu Entrada, selecione "Entrada hexadecimal Unicode" para adicionar essa opção ao menu de entrada. Parece óbvio, mas isso está bem escondido na longa lista de idiomas, entre ucraniano e vietnamita. Quando selecionado, mantenha pressionada a tecla Option e digite o código hexadecimal de 4 dígitos.

Também no OS X: a calculadora pode ser configurada no modo Programador (Cmd-3), que permite a inserção de códigos decimais, octais e hexadecimais, que são exibidos como ASCII ou Unicode. No entanto, o Copy fornecerá o código, não o (s) equivalente (s) de caracteres. Qualquer um?

(Para Windows, consulte Como inserir caracteres Unicode no Microsoft Windows ; para outros métodos de entrada, consulte Wikipedia .)

E aqui no Super Usuário:

E para entrar em extremos:

Arjan
fonte
9

No Ubuntu (e suas variantes, como LinuxMint), você pode inserir valores Unicode pressionando Ctrl+ Shift+ useguido do valor Unicode e Enter, por exemplo:

Ctrl+ Shift+ e u 263aentão digite rendimentos:

Texto: ☺
Screenshot:texto alternativo

Você pode associar isso ao AutoHotkey para obter entradas mais fáceis ou possíveis no Windows.

JMD
fonte
2
Infelizmente, ele só funciona em aplicativos GTK +.
Caracol mecânico
2
Você também pode pressionar Ctrl-Shift enquanto digita o código, o que evita a necessidade de pressionar Enter depois.
Caracol mecânico
11
Encontrei uma solução melhor: você pode adicionar acentos a qualquer caractere anterior usando Unicode combinando sinais diacríticos. Unicode 0301 - 0308 são úteis para Pinyin. por exemplo: "a" + [ctrl] [shift] [u] + 0301 [return] -> á. A lista pinyin: ó -> 0301; 0300; 0304; 0-630; 0 - 0308; consulte en.wikipedia.org/wiki/Combining_character#Unicode_ranges
emf
6

Eu escrevi uma pequena ferramenta de entrada Unicode baseada no AutoHotkey porque não encontrei uma solução melhor. Você pode inserir caracteres unicode com Shift+ Ctrl+ U.

Caixa de diálogo Unicode

Basicamente, converte a entrada em um caractere unicode e a digita na posição do cursor.

Ele não suporta caracteres unicode de 6 dígitos. Além disso, se você tiver um campo de entrada em que todo o texto seja selecionado na perda de foco, todo o texto será substituído (acho que lembro que uma versão antiga do Firefox mostrava esse comportamento).

Como referência, aqui a fonte AutoHotkey, se você deseja compilá-lo:

#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
fonte
2

Também depende de onde você deseja usar os caracteres especiais. Com os aplicativos do MS Office, você não precisa recorrer ao conhecimento dos códigos ASCII para certos caracteres - por exemplo, para digitar uma diarese (ou seja, os dois pontos que você vê acima de alguns caracteres em palavras como ingênuo), em Word / No Outlook / etc, você pode pressionar Ctrl + ':' (ou seja, Ctrl + Shift +;) seguido de 'i'.

Há uma lista de atalhos disponíveis em http://word.mvps.org/FAQs/General/InsertSpecChars.htm ... basta rolar para baixo para "Caracteres internacionais".

Não sei se algum aplicativo que não seja do Office suporta atalhos semelhantes.

Chris J
fonte
2

Linux (incluindo aplicativos Qt / KDE)

Como o JMD mencionou, você pode manter pressionado Ctrl- Shift, digitar u1f4a9e liberar para digitar U + 1F4A9 em aplicativos GTK + (incluindo programas GNOME, Firefox, Chromium e LibreOffice, mesmo no KDE). Alguns programas também apoiar digitação em sequência Ctrl- Shift- U, 1, f, 4, a, 9, Enter.

Infelizmente, isso não funciona nos aplicativos Qt (incluindo programas KDE, Mathematica e VLC). Para caracteres BMP, existe um método de entrada Unicode IBus. Para habilitar, abra as preferências do IBus e adicione o método de entrada "Other - unicode (m17n)" (os dois pacotes ibus-m17n e ibus-qt4 devem estar instalados). Quando o cursor estiver em uma área de texto, ative o método de entrada (usando a barra de ferramentas IBus ou o atalho de teclado). Enquanto ativo, o método de entrada permite digitar Ctrl- Shift- Useguido de 4 dígitos hexadecimais, para inserir o caractere Unicode correspondente. Porém, isso funciona apenas para caracteres BMP.

(Testado no Ubuntu.)

Caracol mecânico
fonte
Não funciona em KDE para mim ..
Jack
Onde posso encontrar as preferências do IBus?
anarcat
1

Talvez não seja exatamente o que você está perguntando, mas é o que eu estava procurando. No Windows 10, você pode pressionar Win+ .ou Win+ ;para abrir um navegador emoji:

insira a descrição da imagem aqui

Como você pode ver na imagem acima, você também pode pesquisar simplesmente digitando.

Aske B.
fonte