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

    [PHP]: Charset: quì c'è grossa crisi.

    Allora, ho visto molteplici post riguardo il charset ma nessuno è in grado di risolvere il mio problema

    Allora, vi spiego in breve.

    Sto mettendo su in PHP+MYSQL un piccolo archivietto che prima avevo in ASP+ACCESS, ci lavoro in locale (WindowsXP Pro+Dreamweaver) e poi tramite l'ftp incorporato del dw allineo tutto con il serverino Ubuntu che sta in un'altra stanza.

    Piccolo inghippo. La macchina Ubuntu di default vedi il Charset UTF-8 mentre Windows ISO-8895-1

    Me ne sono accorto perché sotto windows il sito si vede bene, se lo carico poi sul serverino invece al posto di determinati caratteri si vede il ?.

    Ho fatto queste prove, mi direte voi poi se sono io che sono impazzito o c'è grossa crisi.

    1° Ho creato un file tramite shell (prova.html) contenente solo è
    é
    Risultato: il serverino me lo vede bene.

    2° Ho creato un file tramite shell (prova.php) contenente solo <?php echo("è
    é"); ?>
    Risultato: il serverino me lo vede bene.

    3° Ho provato a modificare il metatag del sito, infatti era ISO-8895-1, l'ho cambiato in UTF-8
    Risultato: il serverino continua a vederlo male.

    4° Su Windows con DW ho creato un file html (che poi ho rimodificato più volte fino a farlo divenire un php) ho lasciato tutti i tag di base che mette DW, ho messo il charset UTF-8, ho scritto nel body è
    é
    Risultato: il serverino lo vede bene.

    5° Ho variato le configurazioni dei file conf di apache2 e php5 sul serverino in modo che di default veda ISO-8895-1
    Risultato: il serverino ora vede bene il sito ma male il resto della roba fatta da lui, compreso il file di cui sopra.

    6° Mi sono accanito sul file di prima, l'ho aperto in modifica (sia da Win con DW che da Shell) imponendo il charset ISO-8895-1.
    Risultato: il serverino comunque lo vede male.

    7° Mi sono accanito sull'header del sito, cambiando più volte i charset da ISO-8895-1 a UTF-8 e viceversa.
    Risultato: comunque il serverino me lo vede bene.

    Allora mi chiedo: ma dove dove stracazzaccio capisce in che codifica è fatto un file?!?! Ma se lo inventa sul momento?

    Ditemi voi....


  2. #2
    molto strano...

    io ho una configurazione simile a casa mia, nel senso che uso dw + xp e un server ubuntu, e lavoro editando con dw tutto e funziona perfettamente, non capisco proprio...

    prova a dare un okkio nel settaggi di dw, ma nn penso sia quello...

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

  3. #3
    Mh, forse sto giungendo ad una soluzione.

    Da quello che noto è probabile che Windows non tenga conto della codifica con cui è salvato il file ma solo dell'header, mentre ad ubuntu non frega niente dell'header ma della codifica con cui è salvato il file.

    Poi ti faccio sapere se è così.

  4. #4
    Ho risolto l'arcano.
    E' che come al solito Linux si dimostra il signor sistema operativo se si tratta di sviluppo.

    Il discorso è questo, fino ad ora non consideravo proprio il discorso di charset perché ho sempre utilizzato solo winzzoz, ora però il problema mi si è posto.

    Linux è meticoloso, tiene conto di tutto, riesce a leggere e a lavorare una valanga di formati, anche non nativi, windows invece cura solo i cazzi suoi e gli altri o si adattano o ciccia.

    In pratica Dreamweaver mi salvava di base tutti i file con codifica ISO-8895-1 che non c'entra niente con il metatag, ma è proprio una cosa insita nel file.
    Ubuntu invece li salva UTF-8.

    Cosa comporta questo, che se lo salvi in ISO-8895-1 dovrai forzatamente mettere nel meta che usi il charset ISO-8895-1 (a meno che il tuo sistema non lo usi di default, come windows), come nel caso che si utilizza UTF-8 bisognerà mettere UTF-8 nel meta (che in Linux è di default).

    Ora ho sistemato Dreamweaver in modo che di base salvi in UTF-8, ma la cosa non è esplicita.
    Infatti nei termini pratici io non ho il controllo dei file, se vado su Salva (o Salva con nome) lui non ci pensa proprio a dirmi in che formato sto salvando, se ne lava le mani, e da quello che ho notato neanche salva sempre in UTF-8, fa come gli pare insomma.

    Mentre sotto Linux (Ubuntu6.06) già un editor come Gedit (N.B. è l'editor di testo standard, come Notepad per windows, ma è molto superiore) ti permette, oltre a scegliere l'estensione, di scegliere la codifica.
    Grazie a Gedit infatti ho scoperto che, dopo aver riaperto tutti i file del mio sito con Dreamweaver riassettato per l'UDF-8 e averli salvati con nome, non tutti i file erano stati effettivamente codificati come UDF-8.

    Ora non mi rimane quindi che cercare un piccolo editor che dopo aver lavorato con dreamweaver prima di risincronizzare, mi permetta sotto windows di assicurarmi della codifica

    Spero che queste mie esperienze servano a qualcuno :rollo:

  5. #5
    beh su dreamweaver è vero, la macromedia non ci ha pensato, ma comunque se usi anche solo notepad, da quello puoi decidere la codifica...

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

  6. #6
    Scusate se vado a riprendere un tpoic così vecchio, ma volevo ringraziare l'arteficie del post... era 2 giorni che ero bloccato e non sapevo dove sbattere la testa. Ora ho risolto il problema grazie a te. Grazie millle davvero

  7. #7
    Eheeheh, non c'è di che.

    Penso che in programmazione e soprattutto nelle pagine web i charset siano la cosa più infame, sono così assurdi che a volte credi che il concetto "la matematica non è un'opinione" forse non è del tutto esatto.

    Pensa che noi abbiamo un applicativo che produce dei file telematici, vanno prodotti in una codifica particolare perché altrimenti c'è un'applicazione diagnostica dell'agenzia delle entrate (in java) che non riconosce il telematico.

    Basta solo che lo apri con notepad, scite o con un qualsiasi altro programma e lo salvi e già non va più bene per il diagnostico...

    Subito dopo i charset ci sono le date quando hai a che fare con un database

  8. #8
    Tra l'altro oltre a doverli salvare in utf-8, devo anche rimuovere da tutte le pagine il BOM(inclusione dell'"unicode signature")... altrimenti non posso usare le sessioni perchè in output arriva già il tipo di codifica della pagina prima di tutto il resto... mai auvto tutti sti casini.

    Io sto seriamente pensando di installarmi ubunto per programmare in php...

    Comunque grazie ancora!

  9. #9
    Dipende cosa ci fai tu con il computer, se ti serve solo per programmare pagine php va anche bene, ma rimango dell'idea (e io sono molto favorevole ad Ubuntu) che XP rimanga il sistema più versatile.

    Se vuoi fare il purista potresti accomodarti una macchina virtuale con Ubuntu e fare i test lì per PHP.

    Per i charset in campo web va tenuto conto di questa cosa.

    Le pagine vanno salvate tutte nella codifica decisa, basta che una sola pagina, magari inclusa da tutte, che non è dello stesso charset delle altre e i caratteri accentati si vedranno male.

    L'intestazione della pagina deve essere indicata e deve essere ovviamente del charset deciso.

    Il datatabase deve essere dello stesso charset.

    Per tagliare ovviamente la testa la toro puoi anche fare un passaggio in più, ovvero trasformare tutti i caratteri speciali in entità html ma anche facendo questo passaggio se non rispetti la prima regola (tutte dello stesso tipo) si vedranno male

    Ciao!

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.