Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 15 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    [php-mysql-html] Codifica caratteri

    So che quest'argomento è stato trattato varie volte ma ho un problema ancora diverso dagli altri.

    Devo gestire tramite backoffice le traduzioni di diversi articoli.

    Le traduzioni ovviamente comprendono anche l'arabo e il giapponese e via discorrendo.

    Ora:

    1) Ho scritto tutti i miei file con dreamweaver avendo selezionato come codifica predefinita l'utf-8

    2) Ogni mio file comincia con

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    3) Ogni tabella del DB (MySql) nel quale vengono salvate le traduzioni è stata definita UTF-8 e i campi che tengono i testi anche loro con collation UTF-8.

    Date le premesse:
    L'arabo, il giapponese ecc. riesco a salvarli e posso stampare nell'html i testi corretti, però se vado a vedere i campi del db non trovo scritta la stringa araba (p.e. مؤسسة النقد العربي السعودي e non so che vordì, non me ne vogliano gli arabi) ma una serie di caratteri strani (che evidentemente quando li seleziono dai miei file vengono fuori correttamente interpretati).

    Ho notato che se io inserisco la stessa stringa di cui prima da phpMyAdmin invece nella tabella la stringa persiste.

    Qualcuno sa dirmi dove sbaglio? O almeno qualche suggerimento?

    Grazie
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    up
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    up
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    up
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    up
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    E' batsato cambiare il character_set del server da my.ini.. ma ancora non capisco perchè funzioni! Mah
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  7. #7
    Ciao Leandro,
    ho il tuo stesso problema con il cirillico.

    Come hai risolto in my.ini?

    Grazie e ciao. Max
    http://www.massimo-caselli.com
    :: Linux Apache PHP e MySQL Blog ::

  8. #8
    In pratica se inserisco una stringa in russo da pagina web con codifica UTF-8 e poi la vado a riprendere da query e la stampo vedo il cirillico alla perfezione.

    Se faccio l'inserimento da Phpmyadmin invece scazza.
    E la lista da phpmyadmin di dati che ho inserito da pagina web anche qui non vedo correttamente la stringa.

    Saluti, Max
    http://www.massimo-caselli.com
    :: Linux Apache PHP e MySQL Blog ::

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Ciao,
    innanzi tutto credo che questo potrà esserti MOOOOOOOOLTO utile

    Charset

    Potrei spiegarti come funziona tutto ma in pratica ti farei il riassunto di queste pagine.

    Comunque nel my.ini dovresti aggiungere questa riga

    default_character_set=utf8
    solo che questo vorrebbe dire andare a modificare la configurazione del server stesso (e non credo sia sempre consigliabile)

    Soluzione alternativa...

    Effettuata la connessione al database esegui per prima cosa questa query

    SET NAMES utf8
    In pratica ottieni lo stesso risultato che con la modifica del my.ini ma che vale solo per la sessione corrente

    Vedrai che avverrà la magia

    Credo che questa funzione però la puoi utilizzare solo con il mysql 4.1.. non ne sono sicurissimo

    Fammi sapere se è tutto ok

    P.S. Ovviamente i campi che sono stati inseriti con la codifica "strana" rimarranno così e ti verranno visualizzati, nel tuo applicativo, come in phpmyadmin. Devi ricaricarli tutti.

    Ciao ciao
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  10. #10
    Ciao Leandro,
    stasera provo subito.

    Una sola domanda, esattamente i campi di testo nel DB come li hai settati? Sia in termini di collation che di charset?

    Grazie mille! Ti faccio sapere come è andata... :-)

    Ciao. Max
    http://www.massimo-caselli.com
    :: Linux Apache PHP e MySQL Blog ::

  11. #11
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Ho settato tutti i campi utf8_unicode_ci (db, tabelle e campi)

    dovrò sicuramente fare qualche modifica se mi capiterà il cinese ma non fa nulla

    In quel caso sarebbe da usare il big-5

    Ciaps
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  12. #12
    Ciao Leandro,
    sei un genio!

    Finalmente ho risolto questo annoso problema.

    Se invece realizzo un sito solo in italiano o in inglese, diciamo lingue con codifica ISO-8859-1 io imposterei i campi, tabelle e DB latin1_general_ci, encoding delle pagine web ISO-8859-1.

    Secondo te devo fare SET NAMES = 'latin1' o non serve?

    Oppure ho cannato tutto? :-D

    Un'altra cosetta, invece da command line ti funziona bene l'output di caratteri arabi/cirillici? A me scazza anche se eseguo SET NAMES utf8 . Ovviamente anche il dump mi da problemi.

    Cmq la tua soluzione vorrei pubblicarla sul mio blog per cui se puoi mi mandi i riferimenti con cui vuoi apparire?

    Grazie e ciao. Max
    http://www.massimo-caselli.com
    :: Linux Apache PHP e MySQL Blog ::

  13. #13
    up
    http://www.massimo-caselli.com
    :: Linux Apache PHP e MySQL Blog ::

  14. #14
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Scusa, non ho ricevuto la notifca della risposta... mah

    Allora se vuoi utilizzare solo caratteri italiani e inglesi va bene la codifica latin1_general_ci (il ci sta per Case Insensitive).

    Il SET NAMES iniziale non lo devi fare a meno che il tuo server mysql non sia settato diversamente: lo verifichi facendo "SHOW VARIABLES LIKE 'character%'", viene fuori una lista del tipo
    character_set_client utf8
    character_set_connection utf8
    character_set_database utf8
    character_set_results utf8
    character_set_server latin1
    character_set_system utf8
    Quella in rosso è il valore che ti interessa (e in sostanza è quello che cambi con il set names o cambiando il my.ini.

    Utilizzare il latin1 ti conviene nel caso di queste due lingue perchè ovviamente occupano solo 1 byte e non 2 come l'utf8. In sostanza risparmi spazio.

    Non ho capito invece che intendi per output.. via web?
    Cmq mo provo con il dump e vedo cosa viene fuori.

    A dopo
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  15. #15
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Allora, il dump non dovrebbe essere un problema perchè quando carichi le query da file è sufficiente che specifichi la codifica nella maschera di phpmyadmin.

    Cioè se te clicchi la scheda SQL ti da la textarea per l'inserimento tramite stringa oppure l'inserimento della query tramite file. In fondo c'è un'indicazione tipo "Set di caratteri del file".

    Ho provato e funziona, nel file si vedono i quadratini (se lo apro con notepad e altri caratteri strani se lo apro con editpad) e all'inserimento vengono "magicamente" trasformati in UTF8 e quindi rivedo e inserisco la mia bella stringa araba.

    Ora dovrei capire cosa succede riguardo l'output.

    In unapagina web non vedi il risultato corretto ma da phpmyadmin si? Se è così è perchè devi specificare che quella pagina utilizza il charset utf8 (vedi il mio primo post). E magari dal tuo editor html devi salvare il file con codifica utf8.

    Altrimenti spiega meglio

    A presto
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

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.