include e charset utf8

  • Creatore Discussione Creatore Discussione unit52
  • Data di inizio Data di inizio

unit52

Nuovo Utente
26 Mar 2008
3
0
0
Salve a tutti.
Recentemente sto affrontando un problema a cui non so bene come venire a capo.
Ho cercato svariate risorse in giro, ma la soluzione che ho trovato non so se sia corretta, se ci siano alternative migliori o se sbaglio qualcosa da qualche parte.
Dunque, ho delle pagine, a cui assegno charset utf8, che a un certo punto includono, in base alla lingua scelta, file diversi con i contenuti delle pagine. All'interno di questi file, sempre php, ci sono stringhe e array contenenti frasi e parole, alcune con accenti o caratteri particolari (tedesco,francese,italiano e spagnolo). Quando però includo appunto questi file, al momento della visualizzazione della stringa o array, sul browser vedo i tipici punti di domanda di errore di codifica delle lettere particolari.
Naturalmente utilizzando utf8_encode risolvo il problema, ma essendo molte e tante le stringhe vorrei sapere se e come possibile risolvere.
Ho notato che se salvo i file da includere utilizzando la spunta BOM, i file poi vengono visualizzati correttamente senza utilizzare utf8_encode. Ho letto però in giro che sarebbe meglio non utilizzare questo genere di salvataggio. Sbaglio?
Inoltre naturalmente mi basterebbe utilizzare un charset iso-latin-1, ma non è meglio utilizzare utf8?
Spero di essermi spiegato...
 
Una soluzione potrebbe essere quella di inserire i caratteri direttamente come entità HTML, in questo modo dovrebbero essere letti correttamente direttamente dal browser.
 
c'hai raggione, infatti è temo quello che farò. Solo che sono file che gestisce alle volte il mio cliente, che non ne sa di queste cose. Quindi devo farlo io e non ne avrei nessunissima voglia a dirla tutta.... ma a mali estremi estremi rimedi...
 
non potresti filtrare tutto in input con htmlspecialchars?

beh ma è una funzione che va applicata a una stringa.... io di stringhe ne ho tantissime e se dovessi farla a ognuna non mi passa più.
Vorrei poter includere un file senza dover applicare funzioni a tutto. Mi sa più di una cosa generica, invece che di una singola funzione.
Se no anche solo applicare un charset iso alla pagina invece che utf-8 ma non mi sembra una soluzione correttisima, visto che utf-8 comunque i caratteri ce li ha....
Non capisco come mai veramente salvando il file con BOM non mi da problemi....
 
Credo che dipenda dal fatto che BOM aggiunge una sequenza di byte in cui viene indicato l'unicode del contenuto del file.

Cito da Wikipedia:

BOM permette di identificare subito se il testo è in formato Unicode e, in caso affermativo, il tipo esatto di codifica. Naturalmente ciò è utile quando non sappiamo a priori la codifica utilizzata; se invece questa è sempre nota, i byte del BOM possono risultare inutili o addirittura dannosi.
 

Discussioni simili