Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    19

    problemi codifica caratteri mysql php

    Salve ho creato un data base con mysql e se visualizzo i dati ad esempio con cmd tutto bene, i caratteri vengono visualizzati correttamente, ma quando visualizzo gli stessi dati attraverso php i caratteri accentati (è, à, ecc...) non vengono visualizzati correttamente. Ho provato a effettuare la suguente query "SET NAMES UTF8" dopo la conessione al DB decodificando i dati di ritorno di una SELECT con la funzione "htmlentities(utf8_decode($value))" ma niente i caratteri assumono altri valori ma non sono ancora visuallizzati nella maniera corretta.

    Qualcono può aiutarmi ?
    Grazie Vanni

  2. #2
    Nei meta tag html tra i tag <head> e </head> Metti questi
    Codice PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
    <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>    
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    Programmatore e responsabile seo della testata giornalistica www.europacalcio.it - www.canforagennaro.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    19
    Niente da fare. Ho inserito il codice che mi hai suggerito ma non succede niente. Comunque grazie lo stesso.

  4. #4
    Salvalo con il Notepad e vedi bene la codifica!
    Programmatore e responsabile seo della testata giornalistica www.europacalcio.it - www.canforagennaro.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    19
    Bene ho fatto il dump del DB e aperto con notepad anche così vedo i caratteri accentati ecc... sballati. Non capisco che tipo di codifica dovrei usare mysql usa latin1...

  6. #6
    Salva sul blocco note con codice Ansi vedi come va!
    Programmatore e responsabile seo della testata giornalistica www.europacalcio.it - www.canforagennaro.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    19
    L' ho aperto con notepad++ ecco il risultato:

    Questa è la stringa così come è stata scritta,
    codice:
    ì,é,è ,à,ù,ò,ç,@,°¸,#
    ,

    così è come appare con codifica ANSI
    codice:
    ',‚,Å_,…,—,•,‡,@,ø,#'
    ,

    così con codifica UTF-8
    codice:
    ',‚,Š,…,—,•,‡,@,ø,#'
    inoltre questo è un pezzo di repert creato nel file sql dal dump
    codice:
    DROP TABLE IF EXISTS `tabtest`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `tabtest` (
      `test_id` int(11) DEFAULT NULL,
      `test_note` text
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    /*!40101 SET character_set_client = @saved_cs_client */;
    non riesco a capire cosa ci sia che non và?

  8. #8
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    essendo questo un problema ricorrente ho scritto una semplice guida che dovrebbe aiutarti a capire il problema, puoi trovarla qui .

    Con l'impostazione descritta non sarà necessario utilizzare funzioni come htmlentities e utf8_decode per visualizzare il risultato desiderato.

    Spero sia di aiuto.

    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    19
    Risolto, il problema stava nel fatto che la insert l'avevo eseguita con il prompt di dos che usa come codifica carateri cp850 e quindi per decodificarli dovevo usare il charset corrispondente:
    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=cp850" />
    ora tutto funziona.

    Ciao e grazie, vanni.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    19
    Ovviamente con la insert eseguita da php oltre al charset utf_8, esempio:

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    ho usato la funzione:

    codice:
    mysql_set_charset(UTF8);
    eseguita subito dopo la conessione esempio:

    codice:
    $link = $cntOB->connectDB($host, $user, $mia_password); 			mysql_set_charset(UTF8);
    tutto funziona

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.