venerdì 26 aprile 2013

PHP e stringhe con caratteri strani ossia il charset UTF-8 e dintorni nel PHP (Parte 3/4)

Il carattere sostitutivo UTF-8
per le codifiche errate
Ora che abbiamo visto cos'è UTF-8, e come utilizzarlo all'interno dei nostri file html, è giunto il momento di vedere come si comporta PHP rispetto a tale codifica.

PHP ha una tipizzazione debole. Ciò significa che sebbene ci siano 8 tipi di dato primitivo, questi sono utilizzati in modo trasparente all'utente. In altre parole nella maggior parte dei casi è PHP che decide quale tipo utilizzare per una data variabile, convertendo automaticamente il tipo di una variabile in un altro secondo proprie regole interne. In talune circostanze tali conversioni automatiche possono spiazzare l'utente e portare a errori logici con risultati inattesi.

Fra i tipi primitivi abbiamo le stringhe. Ad esempio quando scriviamo

lunedì 22 aprile 2013

PHP e stringhe con caratteri strani ossia il charset UTF-8 e dintorni nel PHP (Parte 2/4)

Il carattere sostitutivo UTF-8
per le codifiche errate
Ora che abbiamo un'infarinata su UTF-8 grazie al post precedente, vediamo come questo charset agisce all'interno delle comuni pagine PHP a partire da quelle che non contengono script ma semplice codice HTML.

Si supponga di aprire Blocco Note di Windows per editare il nostro primo file HTML.

Dopo aver inserito gli elementi di base desidereremo salvare il nostro lavoro. Oggigiorno perfino Blocco Note, quando arriva il momento di salvare un file, ci permette di stabilire la codifica dei caratteri.

giovedì 18 aprile 2013

PHP e stringhe con caratteri strani ossia il charset UTF-8 e dintorni nel PHP (Parte 1/4)

Il carattere sostitutivo UTF-8
per le codifiche errate
Quante volte capita di vedere nei propri progettini PHP il carattere  nell'immagine qui accanto? Oppure dei caratteri accentati che nulla hanno a che vedere con le stringhe che ci si aspetta di visualizzare?

Di norma è solo un problema di charset. Già ma cos'è un charset?

Ogni carattere presente sullo schermo ha necessità di essere rappresentato nel computer sotto forma di una sequenza di bit. Se si pensasse ad un carattere, o glifo inteso come rappresentazione grafica di un elemento, come un disegno inserito in una matrice di punti 8x8, avremmo che ogni carattere è composto da 64 punti per ognuno dei quali dovremmo indicare se acceso o spento (0 o 1 ossia 1 bit). Ogni carattere sarebbe rappresentato da 8 byte. Un'enormità per un solo carattere! La cosa è ben peggiore se si considera che i font attualmente utilizzati dai PC di tipo true type, sono disegnati tramite una breve sequenza d'istruzioni che descrivono il carattere stesso permettendone il disegno a diverse dimensioni senza perdere in definizione.