strlen, mb_strlen e o UTF-8
Olá, galera!
Vim amolar vocês mais um pouquinho com uma questão:
Estava vendo na internet (o site estava em inglês e também não lembro qual é) um questionamento sobre usar strlen() ou mb_strlen(), por causa do UTF-8, já que os dois mostram resultados diferentes para a mesma string (desde que esteja acentuada).
ao olhar mais a fundo, percebi outro probleminha:
No notepad++ ao selecionar a opção "converter para ANSI":
$string = 'fórum imasters';
echo $string; // Resultado : fórum imasters
echo strlen($string); // resultado: 14
echo mb_strlen($string, 'utf-8'); // resultado 11
No notepad++ ao selecionar a opção "UTF-8 (SEM BOM)" (recomendada) e sem setar o header como utf-8 no php :
$string = 'fórum imasters';
echo $string; // Resultado : fórum imasters
echo strlen($string); // resultado: 15
echo mb_strlen($string, 'utf-8'); // resultado 14
No notepad++ ao selecionar a opção "UTF-8 (SEM BOM)" e setando o header como utf-8 no php :
$string = 'fórum imasters';
echo $string; // Resultado : fórum imasters
echo strlen($string); // resultado: 15
echo mb_strlen($string, 'utf-8'); // resultado 14
E aí? O que vocês me dizem dessa situação? Qual das funções é confiável (ou pelo menos mais recomendável)? UTF-8 sem BOM é sempre bem-vindo?
Discussão (5)
Carregando comentários...