artigos
Artigos sobre mbstring
Artigos e guias do PHPDocQuest sobre mbstring — do manual oficial do PHP para a prática.
strlen vs mb_strlen no PHP: por que contar caracteres com acento dá errado
strlen('ação') devolve 6, não 4 — porque conta bytes, e em UTF-8 cada acento ocupa dois. Veja por que o corte com substr gera �, quais funções têm par mb_*, e quando strlen ainda é a escolha certa.
Ler
Por que os acentos aparecem quebrados (�) no PHP e como resolver
Acento virando � não é bug do PHP: é charset desalinhado entre o arquivo, o header HTTP e o banco. Veja o caminho UTF-8 fim-a-fim e por que strlen conta bytes, não letras.
Ler