Por que certos personagens são horrivelmente errados, horrivelmente errados no Windows?

16

Caracteres estranhos:

ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้

Pergunta: Por que esses caracteres são tão estranhos quando você os vê no Windows *?

Aqui está um trecho do Outlook para seus filhos da sorte que não são forçados a usar o Windows:

Relacionado: Qual é a codificação de caracteres usada?

* Windows como no sistema operacional. Aplicativos desenhando texto usando GTK + e os gostos não mostram isso como algo saído de uma viagem de LSD que deu errado .

    
por Marcus Hansson 19.02.2012 / 21:59

2 respostas

10

Como pareço ter sido um sucesso ao pensar que o Windows está "fazendo certo", sinto que devo postar uma resposta para justificar minha posição.

O fato é que o texto que você tem está dizendo ao sistema operacional para processar uma quantidade insana de caracteres combinados. O problema que um sistema operacional realmente processa enquanto outro não é devido a um número de problemas. Uma dessas questões é quão minuciosos os programadores estavam quando escreveram o código para processá-los, outro seria devido a programadores serem muito preguiçosos para implementá-los adequadamente, se for o caso.

Basicamente se resume à idéia de que as linguagens escritas são fluidas e que muitos caracteres em certas linguagens têm diferentes diacríticos diacríticos que são aplicados para modificar a pronúncia dos caracteres. Como lidamos com todos esses diacríticos, damos a cada letra um diacrítico com um novo caractere (o que resultaria em um monte de caracteres novos e quase idênticos) ou criamos um conjunto de caracteres especificamente para diacríticos e reduzir nosso alfabeto geral?

O Unicode nos dá o escopo para fazer as duas coisas, mas ao fazê-lo os programadores que têm que renderizar esses diacríticos têm que lidar com o fato de que existem alguns caracteres que possuem múltiplos diacríticos, um acima e outro abaixo, e então o programador tem que fazer a pergunta de quando eles param. Eles poderiam limitá-lo a dois e satisfazer a maioria das pessoas, mas ignorar aqueles que querem ou precisam de três diacríticos para escrever formalmente em seu próprio idioma.

A Microsoft, com ou sem razão, decidiu deixar que o usuário decidisse quantas marcas extras uma pessoa gostaria de usar. Este caminho leva um bom programador e alguma racionalização difícil de seguir. Eu os apoio totalmente em ambos permitindo isso e o fato de que eles fazem isso bem .

Se esses personagens estivessem faltando, por outro lado, eu gostaria de saber por que eles estavam faltando. Foi uma decisão de "nós derrubamos isso no chão após x diacríticos", ou foi devido a que os programadores estavam com preguiça de fazê-lo corretamente e potencialmente me expondo a algum estouro de buffer com código oculto nos diacríticos sendo transmitido para ser executado pelo sistema?

A questão simples aqui é que realmente renderizando esses personagens eu posso ver que o sistema está fazendo exatamente o que é dito para fazer, em vez de fazer o que acha que está certo ou, pior ainda algo potencialmente prejudicial .

    
por 21.02.2012 / 20:14
4

Why does these characters draw so odd when you look at them in Windows*?

Como o Windows tenta processar um grande número de caracteres quando o texto os contém, mesmo que nenhum script real seja nunca combine tantas marcas juntas.

    
por 19.02.2012 / 22:24