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

    Gestione lettere accentate nel nome del file

    Buon giorno, ho una curiosità.
    Finora ho sempre gestito le lettere accentate presenti nel nome del file, sostituendole con le relative senza accento.
    Questo perché in passato quando eseguivo l'upload, a volte venivano codificate con altri simboli strani oppure andava in errore l'upload, oppure ancora, caricava un file senza estensione.Quindi avevo adottato quel pensiero.

    Ora,però dovessi avere la necessità di dover lasciare la lettera accentata, posso farlo oppure è un errore e bisogna evitare?
    Grazie mille.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Certo che si può fare, devi però usare lo stesso charset in tutti i passaggi, i caratteri strani vengono fuori quando si passa da un charset ad un altro ed uno dei due non gestisce le lettere accentate.

    Usa UTF-8 ovunque e non avrai problemi.

    Per ovunque intendo:
    - charset delle pagine html tramite il tag <meta charset='UTF-8'>
    - collation del db
    - charset delle tabelle del db
    - comunicazione verso il db tramite la funzione mysql_set_charset('UTF-8') subito dopo il collegamento al db
    - charset con cui sono salvati i file html/php, deve essere UTF-8 senza BOM oppure ANSI as UTF-8

  3. #3
    ciao buon giorno..
    allora i primi 3 punti sono ok.
    il quarto, praticamente devo fare come da manuale php:
    Codice PHP:
    $link mysql_connect('localhost''user''password');
    mysql_set_charset('utf8',$link);//<------- COSI?
    $db_selected mysql_select_db('emp_feedback'$link);
    if (!
    $db_selected) { die ('Database access error : ' mysql_error());}
    $query "INSERT INTO feedback ( EmpName, Message ) VALUES ('$_empName','$_message')";
    //ecc ecc 
    Il quinto punto,se per favore lo puoi spiegare.Grazie mille....

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Per il 4° punto s', così.

    Il 5°... quando salvi un file, questo ha un certo charset, devi usare uno di quelli che ti ho indicato.
    Se l'editor che usi per scrivere il codice non ti dice il charset del file, scarica Notepad++, apri i file e in basso a destra ti dice il charset.
    Se non è uno di quelli che ti ho detto, dal menu "Formato" scegli "Converti in UTF-8 Senza BOM" e risalva i file.

  5. #5
    una curiosità, che guarda caso mi sta servendo proprio in questo momento devo utilizzare la codifica utf8_bin oppure utf8_general_ci?

    Questo per quanto riguarda, tabelle e campi text.
    grazie.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    utf8_general_ci

  7. #7
    perfetto....
    Ho una tabella con la codifica a latin1_general_ci, cosi come per i suoi campi testo.
    All'interno di un qualsiasi campo testo, ho codificato é = &egrave;, oppure à=&agrave,
    cosi come per tutte le lettere accentate.
    La stessa cosa l'ho fatto per le entità html, tipo i tag, dato che in alcuni campi text, dovevo prevedere l'inserimento di link, potrei trovare oltre alla codifica delle lettere accentate anche la codifica dei tag quindi:
    &lt;a href='../../sections/professionali.php'&gt;Professionali&lt;/a&gt;


    Domanda: dovessi cambiare l'impostazione della tabella e del campo da latin1_general_ci a utf8_general_ci, cosa potrebbe succedere?
    grazie mille...

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Per le html entities sicuramente niente e penso neanche per le lettere accentate perché vengono gestite correttamente sia da utf-8 che da latin1.

    Ad ogni modo, se non vuoi correre rischi, prima della modifica fatti un backup del db.

  9. #9
    ok provvederò...
    ma te le html entities come le gestisci?
    nel campo fai la conversione che faccio io oppure in altro modo?
    a domani...grazie mille.

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.