Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Lettere accentate

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    Lettere accentate

    Ciao,
    è da un po di tempo che ho problemi con le lettere accentate ..
    Nel passaggio dalla pagina HTML alla pagina PHP che esegue l'insert in DB il dato si 'sporcava' ..

    codice HTML:
    DOBLò à ù
    Codice PHP:
    DOBLò Ã  Ã¹ 
    Mi è stato consigliato 8nel forumk HTML) di salvare le pagine HTML in formato UTF-8 e di inserire nelle pagine PHP:
    Codice PHP:
    header('Content-Type: text/html; charset=utf-8'); 
    Adesso però ho un piccolo problema con la funzione che mi trasforma le lettere accentate da minuscolo a maiuscolo (dentro ad un file incluso) ..

    Codice PHP:
    function maiuscolo($stringa)   {    $vocali_accentate = array("à","á","è","é","ì","í","ò","ó","ù","ú");    $vocali_accentate_maius = array("À","Á","È","É","Ì","Í","Ò","Ó","Ù","Ú");       return strtoupper(str_replace($vocali_accentate,$vocali_accentate_maius,$stringa));   } 
    1) se la funzione la inserisco dentro alla stessa pagina PHP le lettere vengono convertite correttamente ma ho problemi con altri caratteri (ad es. €)

    2) se la funzione la lascio dentro al file incluso (scelta obbligata visto il numero di pagine che dovrei modificare) non funziona la conversione (oltre al problema degli altri caratteri tipo €)

    - Input
    modello_veicolo_new --------> €,à,á,è,é,ì,í,ò

    - Output senza richiamare la funzione
    modello_veicolo_new maiuscolo --------> €,à,á,è,é,ì,í,ò

    - Output richiamando la funzione dentro alla pagina
    modello_veicolo_new maiuscolo --------> ‚�,À,Á,È,É,Ì,Í,Ò

    - Output richiamando la funzione dentro al file incluso
    modello_veicolo_new maiuscolo --------> ‚�,à,á,è,é,ì,í,ò

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Leggi il post in evidenza sui caratteri strani.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Ho segnalato il problema nel post in evidenza .. ma nessuno risponde ..

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Il post in evidenza era in realtà solo una guida da seguire, per problemi specifici andrebbe poi aperto un thread apposito.
    Forse avrei dovuto chiuderla da subito quella guida.

  5. #5
    la codifica delle tabelle del db corrisponde con la codifica dichiarata nell'apertura del file e con la codifica del file stesso?
    aquatimer2000

  6. #6
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    • Prima cosa: la codifica dei campi del database, corrisponde alla codifica della lingua che voglio mostrare nella pagina?
      • consiglio: usare sempre la codifica utf8mb4_general_ci o utf8mb4_unicode_ci ( Unicode Trasformation Code 8 bit, multi byte 4 bit general case insensitive )

    • Seconda cosa: la pagina in html, ha nell'header l'indicazine per il browser che deve lavorare in utf8? ( <meta http-equiv="content-type" content="text/html; charset=utf-8"> oppure <meta charset="utf-8"> )
    • Terza cosa: imposta l'editor con cui scrivi il tuo codice per salvare in utf8 senza bom ( byte order mark ).

    Ecco già basta, ma segui anche questa guida: https://phptherightway.com/#php_and_utf8 o questa https://phpbestpractices.org/#utf-8

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Se scrivo ò (hex C3 B2) in UTF-8 e leggo ² (HEX C3 B2) in ISO-8859-1.
    inizialmente effettua una query per impostare SET NAMES utf8 e poi usa mysqli_set_charset https://www.php.net/manual/en/mysqli.set-charset.php (anche wordpress joomla usa questo espediente).
    Successivamente le tue pagine e il tuo IDE php deve necessariamente usare UTF-8.
    Per un un'utente avanzato può interpretare questo codice https://github.com/WordPress/WordPre...udes/wp-db.php
    Ultima modifica di darbula; 29-07-2020 a 15:51

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 © 2024 vBulletin Solutions, Inc. All rights reserved.