tutte le guide

// come risolvere

Caratteri illeggibili: risolvi i problemi di codifica e charset (UTF-8)

Accenti che diventano "é" o punti interrogativi significano che l'email non dichiara correttamente la codifica del testo. Usa UTF-8 ovunque e dichiaralo.

Cosa significa

I computer memorizzano le lettere come numeri. La tabella che collega i numeri alle lettere si chiama codifica dei caratteri, o charset. Lo standard moderno, che copre tutte le lingue e le emoji, è UTF-8. Quelli più vecchi, come ISO-8859-1 o Windows-1252, coprono solo le lettere dell'Europa occidentale.

Quando un'email è scritta in una codifica ma ne annuncia un'altra, le lettere accentate escono sbagliate. Per esempio "Café" diventa Café, e "€" diventa € o un punto interrogativo.

Perché è importante

  • Il testo illeggibile sembra trascurato, e i lettori possono pensare che l'email sia una truffa.
  • I filtri antispam notano oggetti codificati male, dichiarazioni di charset mancanti e caratteri strani. SpamAssassin ha delle regole apposite.
  • Un oggetto rovinato è la prima cosa che il lettore vede.

Come verificare

  • Invia un'email di test: nella home page copia il tuo indirizzo di test unico, inviagli una normale email dalla casella o dallo strumento che vuoi verificare, poi apri il report. Guarda l'oggetto e la sezione "Testo del messaggio": accenti e simboli dovrebbero apparire correttamente. Apri la sezione "Intestazioni grezze" e cerca la riga Content-Type, e controlla nelle regole SpamAssassin se c'è qualcosa su charset o codifica.

Un'intestazione corretta è così:

Content-Type: text/html; charset=UTF-8

Un oggetto con accenti dovrebbe essere codificato, per esempio:

Subject: =?UTF-8?B?Q2Fmw6kgZGUgUGFyaXM=?=

Sembra strano, ma è normale: le caselle di posta lo decodificano e mostrano "Café de Paris".

Come risolvere

  1. Usa UTF-8 ovunque. Nelle impostazioni del tuo strumento di newsletter, del sito, del negozio o del CRM, scegli UTF-8 come codifica delle email se c'è la possibilità.
  2. Salva i modelli in UTF-8. Se modifichi i modelli HTML in un editor di testo, salva il file come "UTF-8". Evita "ANSI" o "Occidentale".
  3. Dichiaralo anche nell'HTML, dentro l'head del modello: <meta charset="UTF-8">.
  4. Controlla il database e il sito. Se nomi o testi vengono da un database (nomi dei clienti, nomi dei prodotti), anche questo deve memorizzare il testo in UTF-8. Altrimenti il testo è già rovinato prima di arrivare nell'email.
  5. Per gli sviluppatori: usa una libreria email nota (come PHPMailer, nodemailer o il pacchetto email di Python) e imposta il charset su UTF-8. Non costruire le intestazioni a mano: oggetti e nomi con accenti devono essere codificati come mostrato sopra.
  6. Evita il copia-incolla da Word. Porta con sé virgolette "intelligenti" e caratteri nascosti. Incolla come testo semplice, poi formatta nel tuo strumento.

Sintomi comuni e cause

  • é, è: testo UTF-8 annunciato come ISO-8859-1 o Windows-1252.
  • ? o un rombo nero: testo in una vecchia codifica annunciato come UTF-8.
  • Codice =?UTF-8? grezzo visibile nell'oggetto: la codifica è malformata.

Verifica che sia risolto

Invia una nuova email di test dalla home page con accenti, il simbolo dell'euro e un apostrofo sia nell'oggetto che nel testo. Il report dovrebbe mostrarli correttamente, l'intestazione Content-Type dovrebbe indicare charset=UTF-8, e nessuna regola di codifica dovrebbe comparire nell'elenco SpamAssassin.

Verifica che sia risolto

Una modifica DNS può richiedere da pochi minuti a qualche ora. Poi invia una nuova email di test o scansiona di nuovo il tuo dominio.

Guide correlate