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

    problema Codifica UTF-8 tra php mySql. Caratteri accentati problematici nonostante codifiche

    Salve,
    posto questo messaggio solo dopo una settimana passata a spaccarmi la testa dietro le righe di codice e seguendo milioni di guide sui Charset.
    Preannuncio che prima di oggi non mi ero mai posto il problema di dover passare i dati da un form PHP ad un db MySql, quindi ammetto che l'errore potrebbe essere grossolano, cerco solo qualcuno che me lo faccia notare.

    Allora il caso è semplice:
    da un form html passo i dati ad una chiamata ajax ad una classe php che fa' l'inserimento a DB e mi torna un messaggio di avvenuto o meno inserimento. I caratteri accentati mi vengono mostrati correttamente fino a che non parte la chiamata ajax alla classe PHP, dopodichè i caratteri accentati vengono trasformati in visualizzazione.

    Ho impostato le pagine e le tabelle in questo modo(seguendo molti tutorial in giro sul web):
    - Pagina php con codice html si apre così:
    <?php mb_internal_encoding('UTF-8'); ?>
    - nell'<head> html ho inserito questo:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    - nella pagina php che raccoglie la quuery e la esegue faccio questo encoding sul parametro passato:
    $sql = utf8_encode($_POST['query']);
    - una volta eseguita la quuery faccio questo:
    mysql_query("SET NAMES 'UTF8'");
    - la COLLATION del Db è impostata su:
    utf8_general_ci
    - Tutti i campi di testo di tutte le tabelle sono impostati con la COLLATION utf8_general_ci

    Seguendo le varie guide su internet mi sembra che tutte dicano più o meno di impostare questi campi così. Perchè nel mio database continuano ad esserci invece solo caratteri strani al posto delle lettere aggiornate?
    Spero che qualcuno mi possa illuminare

  2. #2
    il file php, al momento della creazione, lo hai salvato con codifica UTF-8?

  3. #3
    Credo di si. Io ho il Workspace di Eclipse impostato su UTF8 e se apro i vari files php con notepad++, sotto la voce ENCODING dice che è impostata su UTF-8, quindi direi proprio di si.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    La chiamata ajax è in un file javascript? Quel file che charset usa?

  5. #5
    La chiamata ajax è direttamente nello <script> dell'html/php

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.