Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    3

    Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql

    Ciao ragazzi,
    ho un problema con il charset di mySql, lo so che è un problema abbastanza comune ma credo di aver fatto tutti i 'compiti a casa' senza riuscire a risolvere il problema.

    Quando vado a registrare caratteri speciali come 'à è ì ò ù €' sul db mi registra 'à è ì ò ù €'
    e quando vado a leggere il db sulla pagina html mi rimette i caratteri giusti 'à è ì ò ù €'.

    Dovendo lavorare con nomi e cognomi anche stranieri ho impostato tutto su utf-8:

    Su phpMyAdmin il 'server connection collation', il database, le tabelle e le colonne sono impostati con collation = utf8mb4_unicode_ci

    Sul file .htaccess del sito è impostato così: AddDefaultCharset utf-8

    Sulla pagina php
    - subito all'inizio ho messo mb_internal_encoding('UTF-8');
    - la connessione è impostata così: $myCon -> set_charset("utf8mb4_unicode_ci");
    - utilizzo mysqli

    Sulla pagina html prodotta il charset è impostato così: <meta charset="utf-8">

    L'unica cosa che non ho potuto impostare è il charset del server che è impostato su cp1252 West European (latin1).
    I ragazzi dell'hosting mi dicono che non si può cambiare ma mi sembra strano che sia quello il problema, è un server condiviso e come fanno tutti gli altri?

    Non so più dove sbattere la testa, qualcuno può darmi una dritta?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    3
    Allora mi rispondo da solo che è meglio.


    Mi sono accorto che
    $myCon -> set_charset("utf8mb4_unicode_ci");

    non funziona e ho dovuto mettere semplicemente
    $myCon -> set_charset("utf8");


    Quindi dove possibile ho impostato utf8_general_ci.


    Ora funziona perfettamente anche se il server charset è impostato su latin1


    Ciaooo

  3. #3
    Il problema del charset è qualcosa su cui ci siamo scontrati tutti. Nelle vecchie versioni du mysql era possibile persino specificare la codifica della connessione (non so se sia ancora così) e quindi la possibili confusioni erano tantissime.
    In ogni caso prima di impazzire del tutto, controlla anche la codifica del FILE in cui scrivi il codice. Non tutti ci pensano e spesso porta a dannarsi l'anima.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

Tag per questa discussione

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.