Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    mail e caratteri accentati

    Salve a tutti, ho un semplice script che invia una mail :

    Codice PHP:
    mail("ciao@ciao.it""Il tuo brano è stato inserito!""Ciao! \nDopo aver visionato il tuo brano, abbiamo rilevato la sua conformità e quindi inserito nella nostra scheda."); 
    Nel testo la parola "conformità" appare in modo strano. ho provato ad aggiungere gli header alla fine in questo modo:

    Codice PHP:
    $header "MIME-Version: 1.0\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $header .= 'From: "DarioMarco" <ciao@ciao.it> \r\n'
    ho provato in quest'altro modo:
    Codice PHP:
    htmlentities("Ciao! \nDopo aver visionato il tuo brano, abbiamo rilevato la sua conformità e quindi inserito nella nostra scheda."ENT_QUOTES'UTF-8'
    Ma nulla, vi ringrazio anticipatamente a tutti coloro che vorrebbero illustrarmi il metodo esatto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Leggi il mio link in firma sui caratteri strani e vedi se aiuta.

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Quote Originariamente inviata da DarioMarco Visualizza il messaggio
    Salve a tutti, ho un semplice script che invia una mail :

    Codice PHP:
    mail("ciao@ciao.it""Il tuo brano è stato inserito!""Ciao! \nDopo aver visionato il tuo brano, abbiamo rilevato la sua conformità e quindi inserito nella nostra scheda."); 
    Nel testo la parola "conformità" appare in modo strano. ho provato ad aggiungere gli header alla fine in questo modo:

    Codice PHP:
    $header "MIME-Version: 1.0\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $header .= 'From: "DarioMarco" <ciao@ciao.it> \r\n'
    ho provato in quest'altro modo:
    Codice PHP:
    htmlentities("Ciao! \nDopo aver visionato il tuo brano, abbiamo rilevato la sua conformità e quindi inserito nella nostra scheda."ENT_QUOTES'UTF-8'
    Ma nulla, vi ringrazio anticipatamente a tutti coloro che vorrebbero illustrarmi il metodo esatto.
    Strano come ?

  4. #4
    Ciao Alhzared grazie per la tua risposta, ho letto il tuo 3d ma purtroppo vedo che non è il mio caso in quanto il mio script è un semplicissimo script che invia una mail con testo già impostato ovvero:
    - è incluso in una pagina bianca senza nessun tag head o altro ma solo i tag di apertura e chiusura php
    - non devo inserire o prelevare nulla dal database, solo inviare un testo di notifica

    Ciao cassano il carattere strano non so come scriverlo perchè non è presente sulla mia tastiera, ma sul 3d di Alhzared è spiegato a cosa mi riferisco.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Hai letto che devi fare attenzione anche alla codifica del file stesso?

  6. #6
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Hai letto che devi fare attenzione anche alla codifica del file stesso?
    Ho letto in fondo al tuo 3d che i file hanno un charset, ho provato a salvarlo con due editor tra cui dreamweaver in Unicode (Utf-8) C (Decomposizione Canonica Seguita da Composizione Canonica), ma nulla, mi da sempre lo stesso inconveniente.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Beh, se dichiari di usare
    $header .= "Content-type: text/html; charset=iso-8859-1\r\n";

    che è il latin e poi usi UFT8 per il file, ovvio che non funziona.
    Magari non ti risolve il problema, ma almeno fa che i charset siano tutti coerenti, se vuoi mantenere il latin per il content-type, salva in latin anche il file.

  8. #8

    Risolto

    Ho provato e nulla, ma dopo aver girato sono riuscito a risolvere in questo modo:

    string utf8_decode ( "metti qui il tuo testo con caratteri strani);

    spero a qualcuno possa servire, saluti.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E allora i dati ti arrivavano in UTF8, ma tu usavi il latin nel content-type.

    Il charset deve essere coerente OVUNQUE, basta un componente che "parli" diversamente per far saltare tutto.
    Nelle tue varie prove non hai mai usato la combinazione giusta, di norma l'utf8_decode() non ci sarebbe bisogno di usarlo, a meno di situazioni molto particolari in cui non hai controllo sui charset dei vari componenti.

  10. #10
    Quote Originariamente inviata da DarioMarco Visualizza il messaggio
    Ho provato e nulla, ma dopo aver girato sono riuscito a risolvere in questo modo:

    string utf8_decode ( "metti qui il tuo testo con caratteri strani);

    spero a qualcuno possa servire, saluti.
    La funzione utf8_decode ha uno scopo specifico: trasformare una stringa codificata in utf-8 (e contenente caratteri latin1) in una codificata in iso-8859-1 single byte. In questo caso funziona, pero' e' un passaggio inutile, visto che puoi definire il charset corretto come ti ha detto Alhazred.

    Metti di avere un messaggio in italiano da mandare a un tuo amico che parla perfettamente sia tedesco che italiano: ha senso tradurlo in tedesco? L'unica differenza e' che il tuo amico sa distinguere da solo tra tedesco e italiano, mentre i device che ricevono i tuoi dati invece hanno bisogno che tu gli dica che "lingua" parli.

    Usando utf8 in ogni passaggio dei dati, non ci sono mai problemi di caratteri "strani".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.