Como digitar caracteres U + 200B?


28

Como digitar o caractere unicode U + 200B (caractere de espaço com largura zero) com o teclado?


3
Qual sistema operacional você está usando?
Kurt Pfeifle

1
@ pipitas: Se for dependente do SO, prefiro o Windows.
Mehper C. Palavuzlar

1
Pergunta secundária: Por que você deseja um espaço com largura zero? Isso não ajuda na formatação de comentários quebrados; você precisaria usar um espaço para cabelo.
Joey

@ Johannes: Como não consegui encontrar uma resposta para minha pergunta no Meta: meta.stackexchange.com/questions/54990/… e meta.stackexchange.com/questions/54990/… . Poderia explicar como posso usar um espaço para o cabelo?
Mehper C. Palavuzlar

Ah, ok, problema diferente então. Eu pensei que você estava tentando algo como meta.stackexchange.com/questions/45424, onde o ZWS não funciona (veja meus comentários de teste abaixo da pergunta). Você também postou o mesmo link duas vezes.
Joey

Respostas:


19

Ao usar versões recentes do Chrome / Chromium, você pode usar seu console para copiar o caractere para a área de transferência:

copy("\u200B")         // works for BMP characters only (U+0000 to U+FFFF)
copy("\u{200B}")       // works for all characters (U+0000 to U+10FFFF)

copy(String.fromCodePoint(0x200B))

15

Primeiro converta o hex 200B em decimal 8203

Segundo, certificando-se de que o numlock está ativado, pressione as seguintes teclas enquanto mantém pressionada a tecla Alt, pressionando os quatro dígitos no teclado numérico e, finalmente, soltando a tecla Alt.

Alt+8203

Ele inserirá o caractere adequado, mas você poderá ver o lixo dependendo da fonte que está usando (contém um glifo para esse caractere), assim como o editor que está usando pode não estar ciente de unicode e tratá-lo como dois caracteres ou algo assim completamente completamente.

Nota: Eu testei isso com a fonte Arial Unicode MS e funcionou como um campeão.


1
Obrigado pela sua resposta, mas como posso fazê-lo, por exemplo, dentro desta caixa de comentários?
Mehper C. Palavuzlar

11
Isso insere U + 2642 aqui. No RichEdit, ele funciona (assim como o uso 08203). Quanto ao porquê do U + 2642: 8203 mod 256 é 11, que era, no conjunto de caracteres OEM, o código de caractere do glifo ♂ (que agora é U + 2642). Isso é consistente com o que observei anteriormente: o uso do Alt + foo trata o código de maneira diferente, dependendo do prefixo. Se não 0estiver no início do código, ele será interpretado no charset OEM, caso contrário, no charset herdado do sistema. Nos dois casos, o Unicode está envolvido apenas na conversão do resultado em um caractere.
Joey

1
Obviamente, isso difere entre aplicativos e controles, mas não de maneira significativa e previsível; portanto, como solução geral, isso ainda não está certo.
Joey

1
A propósito, os navegadores não devem ter problemas ao escolher uma fonte para um glifo específico que não está presente na fonte especificada. Arial também contém um glifo para U + 200B. De qualquer forma, você não deve ver glifos nulos (caixas ou U + FFFD) em um sistema semi-recente.
Joey

3
Como você digita esse caractere em um dispositivo que não possui um teclado numérico, como alguns laptops?
Borek Bernard

7

Siga as instruções na Wikipedia . Infelizmente, você precisa definir uma chave do registro primeiro.

Depois de cumprir essa formalidade, mantenha Altpressionado e pressione + 2 0 0 B, digitando os +números e no teclado numérico e as letras normalmente.


3
Digitar a letra B no final do meu terminal do Windows XP parece interromper a sequência de escape e nenhum caractere é realmente enviado para a caixa de texto.
precisa

@Goyuix: As janelas do console são uma fera totalmente diferente ... na maioria das vezes você não pode digitar caracteres com Alt + foo lá.
Joey

7

Alt + 0129

Isso insere um caractere de largura zero.


7
0129- hex 0x81 - não é o mesmo que U + 200B e não é um caractere de largura zero. Na codificação de caracteres do Windows Cp1252 e na ISO-8859-1, "não é um caractere" - não há nada no ponto de código x81; portanto, sim, é processado como nada, mas não é um limite de palavras, portanto, não é o igual a um espaço de largura zero. No Unicode, o codepoint 0x81 está no intervalo de caracteres de controle reservado "C1". Se você estiver usando a codificação Unicode / UTF-8, evite caracteres no intervalo de 0x80 a 0x9f (128-159). Mesmo no latim-1, esse intervalo é reservado #
Stephen P

2

Você pode acessar este site: Símbolos - fornece acesso fácil a muitos símbolos e caracteres especiais. Na parte inferior da página, você vê um botão para o caractere "Espaço com largura zero", basta clicar nesse botão para copiar o caractere "Espaço com largura zero" na área de transferência.


Isso foi muito mais fácil do que as outras respostas que eu tentei! Obrigado.
Ryan

0

Para digitar isso em um laptop sem teclado numérico separado, será necessário ativar o numlock, que será diferente dependendo do fabricante do computador. Os números de 0 a 9 são então MJKLUIO789, respectivamente. Na maioria dos laptops, essas teclas são marcadas como tal. Mas, mesmo que não estejam, ainda deve funcionar.


-3

Não tenho 100% de certeza, mas acho que pode ser Alt + 127


Usando o num lock, devo acrescentar!
RobertPitt

hmm bem o inly outro que eu posso pensar se é a bruxa versão unicode nos 200 ou 200B de modo a tentar ALT + 200 ou ALT + 200B
RobertPitt

Quando eu faço isso, este personagem aparece:
Mehper C. Palavuzlar

Alt + 200 =
Mehper C. Palavuzlar

Essa resposta está incorreta - o ASCII 127 geralmente é o caractere DEL, não um caractere unicode de espaço com largura zero.
Goyuix
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.