dejar que htmlspecialchars use UTF-8 como juego de caracteres predeterminado?

¿Hay alguna manera de decirle a PHP que use UTF-8 como predeterminado para funciones como htmlspecialchars ?

Ya he configurado esto:

 ini_set('mbstring.internal_encoding','UTF-8'); ini_set('mbstring.func_overload',7); 

Si no, ¿puede publicar una lista de todas las funciones donde necesito especificar el charset ?

(Necesito esto porque estoy volviendo a factorizar todo mi framework para trabajar con UTF-8)

Simplemente use htmlspecialchars() lugar de htmlentities() . Como no toca los caracteres que no son ASCII, no importa si usa 'utf8' caracteres 'utf8' o el valor predeterminado 'latin1' (*), los resultados son los mismos. Como bonificación, tu producción es más pequeña. (Aunque significa que debe asegurarse de que realmente está publicando la encoding correcta en su página).

(*: hay algunos conjuntos de caracteres multibyte del este de Asia que pueden diferir en el uso de los puntos de código ASCII, por lo que si los está utilizando, todavía tendría que pasar un argumento de $charset a htmlspecialchars() . Pero ciertamente no existe ese problema para UTF-8.)

¿Hay alguna manera de decirle a PHP que use UTF-8 como predeterminado para funciones como htmlspecialchars?

No, no hasta donde yo sé. mbstring.internal_encoding definirá una encoding predeterminada para la familia de funciones mb_ * solamente.

Si no, ¿puede publicar una lista de todas las funciones donde necesito especificar el juego de caracteres?

No estoy seguro de si existe tal lista; en caso de duda, solo revise el manual y busque los parámetros de los charset .