Iniziamo con il dire cosa fa la encode. Data una stringa php, ossia un array di byte, la encode base64 la converte in una stringa php, ossia semrpe un array di byte, codificato base64. La encode base64 lavora su ottetti binari ossia byte.
Cosa fa quindi la decode? Data una stringa php, ossia un array di byte, codificata base64 la decode la trasforma nella stringa php, ossia array di byte, originariamente passata alla encode.
Cosa significa? Significa che encode e decode lavorano su byte e non su simboli, quindi se all'interno della stringa c'era un flusso dati di una immagine gif, la encode codifica base64 tale flusso. Preso il flusso base64 la decode lo fa tornare flusso dati dell'immagine gif. Se c'era una stringa iso8859-1 la encode la fa diventare base64 e la decode la fa tornare sequenza di byte iso8859-1. Se in origine nell'array di byte era codificata una stringa utf-8, la encode la rende base64 e la decode la fa tornare sequenza di byte codificati utf-8.
In conlusione la decode produce un flusso dati di ottetti il cui significato è quello che avevano gli ottetti al momento della encode.
Nel caso di codifiche di caratteri ad ogni sequenza binaria di uno o più byte, a seconda della codifica adottata (ascii, utf-8, iso8859-1...), è fatto corrispondere un glifo ossia quello che tu chiami simbolo. Il glifo è la rappresentazione grafica destinata alla visualizzazione su schermo, o altro dispositivo, di un particolare valore numerico.
![]()