CGI - FormMail 1.93 
* Campi obbligatori
Nome*
Cognome*
Telefono*
E-mail*
La tua richiesta
 
Privacy* acconsento al trattamento dei dati personali
(leggi "Privacy Policy")
 
   
 

Cinsiderazioni

Problema con i caratteri accentati ( à è ì ò ù ) sia con FormMail 1.93 sia con lo script cgiemail 1.6

Infatti nella visualizzazione della mail che mi arriva tramite FormMail o tramite cgiemail le lettere accentate sono sostituite da caratteri incomprensibili.

Il problema si presenta solo con la lettura delle mail direttamente su alcune webmail.

Ho aggiunto, quindi, queste due righe di codice, che ho trovato in un forum, al file FormMail.pl, non sullo script cgiemail perchè non lo visualizzo bene con nessuno degli editor di testo che ho a disposizione.

  print MAIL "MIME-Version: 1.0\n";
  print MAIL "Content-Type: text/plain;\n charset=iso-8859-1\n\n";   

Il problema persiste.

Ho cambiato allora anche la codifica dei caratteri nel head del file html che contiene il modulo da charset="utf-8" a charset="iso-8859-1".
Così facendo risolvo il problema delle lettere accentate nelle mail che mi arrivano dai due script.

Oltretutto, cambiando la codifica dei caratteri nel documento html diventa superfluo modificare il FormMail.pl, infatti le lettere accentate vengono visualizzate correttamente nelle e-mail visualizzate dalle interfacce webmail.

Quindi io ho risolto così: ho cambiato soltanto la codifica dei caratteri nei meta tag dell <head>, inserendo: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">. Sia lo script FormMail che lo script cgiemail non li ho modificati.
Si crea un problema però con le lettere accentate nelle Pop-Up di avviso dei campi obbligatori quando vengono lasciati vuoti, controllo effettuato con uno script javascript.
Sostituendo la codifica utf-8 però le lettere accentate e i caratteri speciali si devono convertire nei codici html o javascript per visualizzarli correttamente. Il controllo sui campi obbligatori vuoti viene effettuato da uno script in Jacascript.
Anche questo problema l'ho risolto sostituendo le lettere accentate presenti negli alert con la corrispondente rappresentazione del carattere accentato in codice esadecimale.

Così facendo tutto funziona, resta il dubbio che non sia la soluzione più corretta:
perchè non funziona con la codifica dei caratteri utf-8 ?
Visto che con questa codifica utf-8, se non erro, le lettere accentate si vedono correttamente anche senza convertirle nel codice html e esadecimale per javascript