Vai al contenuto
Lingua: IT

I caratteri accentati tornano sbagliati dopo la scrittura

Un record di testo dichiara quale codifica usa, e uno strumento che ne scrive una mentre un altro ne suppone una diversa produce accenti storpiati in lettura. I caratteri sul tag sono intatti; quello che non va è l'accordo su come interpretarli.

Il record dichiara la sua codifica

Un record di testo porta più dei caratteri. Porta anche un'indicazione di come quei caratteri siano codificati, e un codice di lingua.

Un lettore usa quell'indicazione per riportare i byte a lettere. Quando la dichiarazione e la realtà concordano, gli accenti tornano esattamente come sono stati scritti.

Quando non concordano, i byte sono intatti e l'interpretazione è sbagliata, ed è per questo che il risultato è storpiato invece che mancante.

I caratteri fuori dalla gamma latina senza accenti costano anche più di un byte ciascuno, quindi un testo accentato occupa più spazio di quanto il suo numero di caratteri suggerisca.

Dove va storto

Uno strumento di scrittura che dichiara una codifica e ne scrive un'altra. Il tag si contraddice allora da solo e ogni lettore lo sbaglia.

Uno strumento di lettura che ignora la dichiarazione e ne suppone una predefinita. Il tag è corretto e un lettore in particolare lo mostra male.

Un contenuto incollato da una fonte in un'altra codifica, che può arrivare allo strumento di scrittura già danneggiato. Il tag conserva allora fedelmente caratteri che erano sbagliati prima di arrivarci.

Rileggi il tag con un secondo strumento per distinguere i casi. Se due lettori non concordano, il tag sta bene e uno dei due sbaglia. Se concordano entrambi sull'errore, il tag contiene quello che è stato scritto.

Gli indirizzi sono un caso a parte

Un indirizzo web non è testo libero. I caratteri fuori dall'insieme ammesso vanno codificati in percentuale, e un indirizzo che contiene caratteri accentati grezzi può non funzionare anche quando è conservato perfettamente.

Certi strumenti li codificano per te e altri no, ed è per questo che un indirizzo con un percorso accentato può comportarsi diversamente a seconda di che cosa l'ha scritto.

I nomi di dominio internazionalizzati hanno una loro conversione, fatta dal browser e non dal tag.

In tutti questi casi il tag conserva i caratteri fedelmente. Quello che cambia è se quello che è stato conservato fosse un indirizzo valido.

Evitarlo del tutto

Usa caratteri senza accenti in tutto quello che scrivi direttamente su un tag, dove il senso ci sopravvive. Non è elegante ed elimina un'intera famiglia di guasti.

Tieni il testo accentato su una pagina invece che su un tag, e scrivi piuttosto un indirizzo corto. Una pagina web controlla la propria codifica e si mostra correttamente ovunque.

Prova con il testo vero su un telefono diverso da quello con cui hai scritto, perché uno strumento di scrittura che rilegge quello che ha prodotto lui stesso può nascondere un disaccordo.

E controlla la lunghezza dopo ogni modifica al contenuto accentato, perché quei caratteri costano più di un byte e un messaggio che ci stava può smettere di starci.

Domande frequenti

Il tag conserva i caratteri sbagliati?

Di solito no. I byte sono intatti e l'interpretazione è sbagliata, ed è per questo che il risultato è storpiato invece che vuoto.

Gli accenti occupano più spazio?

Sì. I caratteri fuori dalla gamma latina senza accenti costano più di un byte ciascuno, quindi un testo accentato è più grande del suo numero di caratteri.

Perché due applicazioni lo mostrano diversamente?

Perché una rispetta la codifica dichiarata e l'altra ne suppone una predefinita. Quel disaccordo è il guasto.

Posso mettere accenti in un URL su un tag?

Vanno codificati in percentuale per essere validi, e non tutti gli strumenti lo fanno per te. Un percorso senza accenti evita la questione.