Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Encoding HTML PHP

  1. #1

    Encoding HTML PHP

    Buongiorno a tutti, sto cercando di levare le gambe da un problema noioso, premetto di essere alle primissime armi con il php.
    Vado subito al punto, sito ecommerce in php interfacciato con un database mysql, il cliente acquista l'oggetto inserisce i dati per la spedizione e poi alla conferma dell'ordine partono due email di riepilogo, al cliente e al gestore.
    Il problema è che i clienti stranieri che quindi utilizzano caratteri speciali, accenti, Ø ecc non si vedono.. ad esempio MarcØ viene riepilogato Marc

    Il charset utilizzato è l'utf-8, ho provato a cambiare Ø (direttamente nel database) con il relativo codice html e in quel caso il nome viene riscritto normalmente.

    La mia idea quindi era quella di utilizzare htmlentites che presumo faccia al caso mio..

    La stringa nel php riguardo l'invio del campo nome è questo:

    $mail_body = str_replace('[utente_nome]', $_SESSION['utente']['utente_nome'], $mail_body);

    Il punto è questo.. come ce lo metto questo tag?

    Grazie mille e Buona giornata

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non basta che le tabelle del db abbiano utf8 come charset, deve essere utf8 anche il collation del db stesso, inoltre è necessario che la connessione fatta da PHP verso MySQL sia in utf8, cosa che va specificata con mysql_set_charset('utf8') o equvalente a seconda del sistema che si usa per dialogare col db, subito dopo aver selezionato il database.

  3. #3
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Aggiungo che alcuni client di posta/webmail mal digeriscono il charset utf-8, quindi, per le mail dovresti passare la localizzazione corretta.

  4. #4
    Ok quindi non basta solo la tabella degli utenti ma tutto il db deve essere utf-8

    Devo lavorare comunque sulla base?
    Nel senso, non c'è modo di dire al php estrapola i dati che devi estrapolare dal db, quando però fai l'invio dell'e-mail il campo utente_nome me lo decodifichi in utf piuttosto che iso qualcosa.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se sei ancora in fase di creazione del sito ti conviene rivedere l'encoding del db, connessione e via discorrendo.

    Altrimenti da un'occhiata alla funzione utf8_encode().

  6. #6
    No infatti, è un sito ultimato e online già da tempo, solo che non si erano mai accorti di questo problema.. Grazie per le info

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.