Perché alcuni personaggi disegnano in modo orribile, orribilmente sbagliato in Windows?


16

Personaggi strani:

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

Domanda: Perché questi personaggi appaiono così strani quando li guardi in Windows *?

Ecco un frammento di Outlook per voi bastardi fortunati che non sono costretti a usare Windows:

Cose

Correlati: qual è la codifica dei caratteri utilizzata?

* Windows come nel sistema operativo. Le applicazioni che disegnano testo usando GTK + e simili non li mostrano come qualcosa di un viaggio dell'LSD andato storto .


Stai dicendo che sul tuo computer Windows, i caratteri che hai digitato nella domanda sembrano i caratteri nell'immagine? Perché i caratteri digitati sembrano a posto sul mio computer Windows.
dsolimano,

1
La tua domanda contiene un'affermazione priva di fondamento: Windows li considera "sbagliati". Sarebbe utile se affermassi come pensi che dovrebbero essere disegnati e cosa specificamente non va nel modo in cui Windows li disegna.
David Schwartz,

2
Sarei curioso di vedere come gestiscono gli altri sistemi operativi, vedo solo come fa Windows e per me sembra "giusto".
Mokubai


Risposte:


10

Dato che mi sembra un po 'un colpo per pensare che Windows stia "facendo bene", sento che dovrei pubblicare una risposta per giustificare la mia posizione.

Il fatto è che il testo che hai sta dicendo al sistema operativo di rendere una quantità folle di combinazioni di caratteri. Il problema che un sistema operativo li rende effettivamente mentre un altro non lo è è dovuto a una serie di problemi. Uno di questi problemi è la precisione dei programmatori quando hanno scritto il codice per renderli, un altro sarebbe dovuto al fatto che i programmatori erano troppo pigri per implementarli correttamente, se non del tutto.

Fondamentalmente si riduce all'idea che le lingue scritte siano cose fluide e che molti caratteri in alcune lingue abbiano più segni diacritici diversi che vengono applicati per modificare la pronuncia dei caratteri. Come gestiamo tutti questi segni diacritici, diamo a ogni lettera con un carattere diacritico un nuovo personaggio (che porterebbe a un diavolo di molti personaggi nuovi e quasi identici) o creiamo un set di caratteri specificamente per i segni diacritici e riduciamo il nostro alfabeto generale?

Unicode ci dà la possibilità di fare entrambe le cose, ma nel fare ciò i programmatori che devono rendere questi segni diacritici devono fare i conti con il fatto che ci sono alcuni personaggi che hanno effettivamente più segni diacritici, uno sopra e uno sotto, e poi il programmatore ha porre la domanda proprio quando si fermano. Potrebbero limitarlo a due e soddisfare la maggior parte delle persone, ma ignorare coloro che vogliono o hanno bisogno di tre segni diacritici per scrivere formalmente nella loro lingua.

Microsoft, sia a ragione che a torto, ha deciso di consentire all'utente di decidere quanti segni extra una persona desidera utilizzare. Questo percorso richiede un buon programmatore e una dura razionalizzazione da seguire. Li sostengo pienamente sia nel consentire questo sia nel fatto che lo facciano bene .

Se quei personaggi mancassero invece, vorrei sapere solo perché mancavano. È stata una xdecisione "lasciamo cadere questo sul pavimento dopo i segni diacritici" o era dovuto al fatto che i programmatori erano troppo pigri per farlo correttamente e potenzialmente esponendomi ad un buffer overflow con il codice nascosto nei segni diacritici che veniva svelato per essere eseguito da il sistema?

Il semplice problema qui è che rendendo effettivamente quei personaggi posso vedere che il sistema sta facendo esattamente ciò che gli viene detto di fare, piuttosto che fare ciò che ritiene giusto o, peggio, fare qualcosa di potenzialmente dannoso .


11
Oppure: perché Windows disegna così bene personaggi orribilmente, orribilmente sbagliati?
mtone,

Coprire il testo di qualcun altro soddisfa i criteri di "potenzialmente dannoso" nel mio libro. (Forse il messaggio da nascondere è importante.) Per inciso, la mia soluzione preferita sarebbe una qualche forma di ritaglio piuttosto che un limite al numero di segni diacritici. (Se ci sono davvero lingue che usano personaggi che si sovrappongono a caratteri su linee adiacenti, non mi interessa saperlo!)
Harry Johnston,

Inoltre: poiché è improbabile che gli SM cambino presto questo comportamento, è probabile che Facebook e altri siti che accettano i dati degli utenti provino a sanificare il set di caratteri per evitare che i burloni usino male questa "caratteristica". Sfortunatamente, il processo di sanificazione può avere effetti collaterali indesiderati. Se Windows ritagliasse l'output non sarebbe necessario.
Harry Johnston,

4

Perché questi personaggi sono così strani quando li guardi in Windows *?

Poiché Windows tenta di eseguire il rendering di un gran numero di Unicode combinando caratteri quando il testo li contiene, anche se nessuno script reale combinerebbe mai così tanti segni insieme.


Presumibilmente ciò significa che Windows sta "facendo la cosa giusta" secondo quanto effettivamente richiesto, piuttosto che imporre limiti su quanti caratteri combinati possono essere usati.
Mokubai

Vedi anche superuser.com/questions/389333/… che sembra indicare che tali trucchi hanno guadagnato popolarità su Facebook.
Jukka K. Korpela,

@Mokubai: il fatto è che si tratta di dati non attendibili - dati provenienti da Internet. Windows non dovrebbe necessariamente fare ciò che i dati non attendibili gli chiedono se potrebbe non essere nell'interesse dell'utente.
Harry Johnston,

1
@HarryJohnston Sarei più preoccupato se non mostrasse tutti i segni diacritici, per favore vedi la mia risposta.
Mokubai
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.