Deși sunt multe limbi în care orice caracter poate fi reprezentat prin asocierea lui cu o valoare pe 8 biți, există multe alte limbi care au atât de multe caractere pentru comunicarea în scris încât ele nu încap în ceea ce oferă un simplu octet (Un octet este format din 8 biți. Fiecare bit poate conține valoarea 1 sau 0. Din această cauză, un octet poate reprezenta doar 256 de valori (doi la puterea a opta)). Din această cauză, s-au dezvoltat scheme de codare a caracterelor pe mai mulți octeți pentru a lucra cu mai mult de 256 de caractere.
Când manipulați (trim, split, splice, etc.) stringuri care conțin caractere multioctet, trebuie să folosiți funcții speciale deoarece doi sau mai mulți octeți consecutivi pot reprezenta un singur caracter în astfel de scheme de codare. Altfel, dacă folosiți o funcție care nu ține cont de caractere multioctet pe stringuri care conțin astfel de caractere, probabil că funcția va eșua să detecteze unde începe și unde se termină caracterul multioctet și veți rămâne cu un string care conține caractere indescifrabile și care și-a pierdut înțelesul inițial.
mbstring oferă funcții specifice lucrului cu stringuri care conțin caractere multioctet, funcții care vă ajută să lucrați în PHP cu codările acestor caractere. În plus, mbstring se ocupă de conversia de caractere între perechi de codări suportate. mbstring este gândit să se ocupe de codări bazate pe Unicode, cum ar fi UTF-8 și UCS-2 dar poate fi folosită și cu alte codări de caractere pe un singur octet (enumerate mai jos).