Migrando um aplicativo php para manipular UTF-8
Eu estou trabalhando em um aplicativo multi-linguagem em php.
Tudo estava bem até recentemente me pediram para apoiar caracteres chineses. As ações que tomei para suportar caracteres UTF-8 são as seguintes:
Todas as tabelas DB agora são UTF-8
Modelos HTML contêm a tag<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Os controladores enviam um cabeçalho especificando a codificação (utf-8) a ser usada para a resposta http
Tudo foi bom até eu começar a fazer algumas manipulações de string (substr e os gostos)
Com chinês não funcionará porque o chinês é representado como multibytes e, portanto, se você fizer uma substring normal (substr), ele irá cortar uma "letra" no meio de um dos bytes alocados e f * ck o resultado em tela.
Eu corrigi todos os meus problemas, adicionando isso no bootstrap
mb_internal_encoding("UTF-8");
e substituindo todo ostrlen
, substr
, strstr
com o seumb_
homólogos.
Que outras coisas eu preciso fazer para suportar o UTF-8 totalmente em php?