mysql_set_charset()
seria uma opção - mas uma opção limitada ao ext/mysql
. Para ext/mysqli
é mysqli_set_charset
e para PDO
::mysql
você precisa especificar um parâmetro de conexão. Como o uso dessa função resulta em uma chamada à API do MySQL, ela deve ser considerada muito mais rápida do que emitir uma consulta.
Em relação ao desempenho, a maneira mais rápida de garantir uma comunicação baseada em UTF-8 entre seu script e o servidor MySQL é configurar o servidor MySQL corretamente. Como
SET NAMES x
é equivalente
para SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
considerando que
SET character_set_connection = x
internamente também executa SET collation_connection = <<default_collation_of_character_set_x>>
você também pode definir essas variáveis de servidor
estaticamente em seu my.ini/cnf
. Por favor, esteja ciente de possíveis problemas com outros aplicativos rodando na mesma instância do servidor MySQL e exigindo algum outro conjunto de caracteres.