Eu e um amigo estávamos brincando sobre aleph's. Ao tentar digitar א 0 (alterne esses 2 caracteres), eles trocaram eles mesmos! Qualquer sequência de símbolos não interrompe esse efeito. Por que é isso!??
Tente digitar estes com 0 e א invertidos (c & p para א):
א 0
א - 0
א \\\ 0
א -. / 0
Palavras no entanto separá-los
א foobar 0
Estou no arch linux e ainda não testei isso em nenhum outro sistema operacional
EDIT: número não precisa ser zero. Funciona com números, mas não com letras.
ב-5 דקות
(em 5 minutos).Respostas:
'א', 'HEBREW LETTER ALEF' (U + 05D0) possui a classe BIDI (bidirecional) "Direita para a esquerda [R]", porque o hebraico é tradicionalmente escrito da direita para a esquerda. Os dígitos, por outro lado, não têm uma direcionalidade específica atribuída a eles; portanto, todo o pedaço de aleph e zero é interpretado como sendo da direita para a esquerda. Nesse caso, o caractere a seguir pode não estar necessariamente localizado à direita do caractere anterior, como ditam as regras bidirecionais bastante complexas do Unicode.
Você tem várias opções para solucionar esse problema.
Você pode usar 'ℵ', 'ALEF SYMBOL' (U + 2135) . É um símbolo e tem a propriedade da esquerda para a direita: ℵ0.
Em vez do dígito usual
0
, você pode usar um caractere do tipo zero com direcionalidade da esquerda para a direita, como '〇', 'NÚMERO IDEOGRÁFICO ZERO' (U + 3007) .A maneira mais limpa é usar o caractere 'ESQUERDA PARA A DIREITA' (U + 200E) ( Wikipedia ) após o aleph: "א 0". Esse é um caractere invisível de largura zero, definido para ter direcionalidade da esquerda para a direita. Portanto, ele tem o mesmo efeito no algoritmo de layout de texto bidirecional que a inserção, digamos, de uma letra latina da esquerda para a direita após o א, exceto que nenhuma letra visível aparecerá lá.
fonte
U+202C
) quando o contexto em que você deseja que elas operem seja concluído.Aleph ( U + 05D0 ) é uma letra hebraica e o hebraico é escrito da direita para a esquerda; portanto, o Unicode atribui a ele a classe bidirecional "Da direita para a esquerda". (Consulte Unicode TR9: algoritmo bidirecional para obter mais detalhes.)
As letras latinas são obviamente "da esquerda para a direita". No entanto, zero ( U + 0030 ) está na classe bidirecional "Número Europeu", que é uma classe fraca - enquanto o LtR, por padrão, pode mudar para RtL se houver um caractere "forte" da direita para a esquerda antes dele. (Consulte Tipos de caracteres bidirecionais e Resolução de tipos fracos em TR9.)
Como resultado, as instruções de antes e depois são trocadas pela palavra inteira - se você colocar o zero 'antes', ele aparecerá à direita; se você escrever o zero 'depois' aleph, ele aparecerá à esquerda.
fonte
0
é usado pelos idiomas LTR e RTL e, portanto, o software segue a mesma direção da letra anterior. Se segue caracteres LTR, é LTR. Se segue letras RTL, é RTL. Também há substituições para trocá-lo. fileformat.info/info/unicode/char/202d/index.htmTalvez, uma maneira melhor de conseguir isso seja:
E a referência obrigatória xkcd https://xkcd.com/1137/
fonte
É perfeitamente possível ter um zero na frente, como mostra o exemplo a seguir, feito no Notepad ++.
O que você está vendo e também fica aparente se você tentar marcar o caractere em sua pergunta é que o hebraico é escrito da direita para a esquerda e (como o 0 está diretamente conectado) o texto é tratado da direita para a esquerda (em vez de para a esquerda). para a direita).
Veja o segundo exemplo para o problema que o Firefox (do meu lado) tem com uma seleção clara.
fonte
O hebraico é escrito da direita para a esquerda - isso faz com que o caractere aleph carregue as informações, que o próximo caractere deve ser impresso à esquerda dele.
Se você verificar o seu documento em hexadecimal (ou mover o cursor pelo texto com as teclas de seta em um editor adequado), notará que você chega primeiro ao alpeh e depois ao dígito.
Ou seja: A suposição "próximo caractere == caractere à direita" não é válida.
fonte
A questão é onde você faz isso e a implementação. Para obter o comportamento do número hebraico, todos os caracteres devem estar na direcionalidade da direita para a esquerda. Em HTML / CSS, isso é:
No sistema operacional, o hebraico e a bidirecionalidade devem estar ativados.
As soluções alternativas, sugerindo o uso de outros caracteres como substitutos, anulam o objetivo do Unicode. O aleph como operador matemático pode parecer o mesmo em alguns conjuntos de caracteres, mas é um caractere totalmente diferente do aleph hebraico, tanto no contexto quanto em como será analisado. Por exemplo, um falante / computador nativo do hebraico não o processará corretamente se usado em conjunto com uma palavra hebraica. Números e caracteres não alfa são um problema quando eles próprios não recebem a mesma codificação direcional que os caracteres alfa. Assim, ironicamente, os próprios números, embora aparentemente devam ser independentes de um conjunto de caracteres / direcionalidade, assumem qualquer direcionalidade unicode da letra anterior. Assim, em um documento hebraico - os números se tornam 'hebraizados', isto é, direcionalmente, como o hebraico. Considerando que um documento inglês-latino,
fonte
É possível:
א 0
א - 0
א \\ 0
א -. / 0
א foobar 0
(Esta resposta não respondeu "por que isso", como já foi respondida por outros. Mas responde à pergunta no título "impossível de ...?")
fonte