Digamos que seu idioma nativo seja o hebraico e você esteja trabalhando em uma linguagem de programação como o Python 3, que permite colocar o hebraico no código-fonte. Bom para você! Você tem um dict
:
d = {'a': 1}
e você deseja substituir isso a
por um pouco de hebraico. Então você substitui esse caractere único:
d = {'א': 1}
Uh oh Apenas substituindo um caractere, sem fazer outras alterações , sua exibição ficou louca. Tudo, desde o hebraico até o 1
contrário, é extremamente óbvio que isso é uma sintaxe válida ( é ), e muito menos o que isso significa.
O hebraico é intrinsecamente da direita para a esquerda e, mesmo sem caracteres de controle invisíveis, o texto em hebraico será exibido da direita para a esquerda. Isso também se aplica a certos caracteres "regulares" em posições próximas ao hebraico, bem como a caracteres de alguns outros scripts. Os detalhes são complicados.
Como você lida com isso? Você não pode inserir caracteres de controle no seu código-fonte para corrigir a exibição sem quebrar o código. Escrever tudo em hexadecimal escapa comercializa um tipo de ilegibilidade para outro. Mesmo se você se resignar a nomear tudo com caracteres do bloco Latim básico e colar todas as strings hebraicas nos arquivos de localização, é difícil evitar misturar o texto da direita para a esquerda e da esquerda para a direita.
JSON ou CSV com hebraico serão ilegíveis. Se esses arquivos de localização nos quais você inseriu suas strings deveriam ser legíveis por humanos, bem, provavelmente não são. O que você faz?
'.dlrow olleH'
. Se for da direita para a esquerda, o Visual Studio está fazendo algo estranho que não é forçado da esquerda para a direita nem o algoritmo bidirecional Unicode adequado. Qualquer um dos casos tem suas próprias fontes de confusão.