Ce face mb_internal_encoding
Toate funcțiile mb_ au un parametru opțional $encoding. Când lipsește, se folosește codarea internă, pe care o citești sau o schimbi cu mb_internal_encoding.
În PHP 8 valoarea implicită vine din default_charset, adică UTF-8, deci de obicei nu trebuie schimbată. Fără parametru, funcția returnează codarea curentă; cu parametru, o setează și returnează true (sau aruncă ValueError pentru o codare necunoscută).
Parametri
| Parametru | Descriere |
|---|---|
$encoding |
Opțional. Codarea nouă, de exemplu "UTF-8". |
Ce returnează
Codarea curentă (fără parametru) sau true după setare.
Exemple
Exemplul 1: Citire și schimbare
În ISO-8859-1 fiecare octet este un caracter, deci litera „ș” (2 octeți în UTF-8) este numărată de două ori.
<?php
echo mb_internal_encoding() . "\n";
echo mb_strlen("Iași") . "\n";
mb_internal_encoding("ISO-8859-1");
echo mb_strlen("Iași") . "\n";
mb_internal_encoding("UTF-8");
Rezultat
UTF-8
4
5
Greșeli frecvente
- Schimbi codarea internă într-un fișier inclus și toate funcțiile
mb_din restul aplicației încep să numere greșit diacriticele. Dă mai bine$encodingexplicit doar unde ai nevoie.
Comenzi înrudite
mb_strlen: Returnează lungimea unui text în caractere, numărând corect literele cu diacritice.mb_convert_encoding: Convertește un text dintr-o codare de caractere în alta, de exemplu din ISO-8859-16 în UTF-8.mb_get_info: Returnează setările interne ale extensiei mbstring: codarea internă, limba, ordinea de detectare etc.