A pesar de que la biblioteca estándar de PHP cuenta con las funciones utf8_encode y utf8_decode, su funcionalidad se limita a la conversión entre las codificaciones ISO-8859-1 (Latin-1) y UTF-8. Es crucial tener en cuenta que no se deben depender de estas funciones para detectar y convertir otras codificaciones de caracteres, como Windows-1252, UTF-16 y UTF-32, a UTF-8. El uso de estas funciones con texto arbitrario podría introducir errores que posiblemente no generen advertencias ni errores, pero que podrían producir resultados inesperados y no deseados.

En PHP 8.2, las funciones utf8_encode y utf8_decode han quedado obsoletas debido a sus nombres de funciones engañosos, la falta de mensajes de error y advertencias, y su incapacidad para admitir codificaciones de caracteres distintas a ISO-8859-1.
Como resultado, el uso de estas funciones en PHP 8.2 emitirá un aviso de obsolescencia. Se recomienda optar por funciones o bibliotecas alternativas que ofrezcan un mejor soporte para gestionar diferentes codificaciones de caracteres. Estas funciones serán eliminadas por completo en PHP 9.0, por lo que es esencial migrar a soluciones alternativas cuanto antes para evitar problemas de compatibilidad en futuras versiones de PHP.
Alternativa:
En su lugar, la documentación de PHP sugiere utilizar las funciones de cadena multibyte incluidas en la extensión mbstring para manejar codificaciones multibyte, incluyendo UTF-8. Por ejemplo, la función mb_convert_encoding() se puede emplear para convertir cadenas entre diferentes codificaciones de caracteres, incluso hacia y desde UTF-8.
// Codificar cadena UTF-8:
mb_convert_encoding("Some string with non-ASCII characters: é, ö, ü”, 'UTF-8');
// Como decodificar una cadena UTF-8:
mb_convert_encoding("Some UTF-8 encoded string: é, ö, ü", 'ISO-8859-1', 'UTF-8');