mysql_set_charset()
byłaby opcją - ale opcją ograniczoną do ext/mysql
. Dla ext/mysqli
to jest mysqli_set_charset
i dla PDO
::mysql
musisz określić parametr połączenia.
Ponieważ użycie tej funkcji skutkuje wywołaniem MySQL API, należy to uznać za znacznie szybsze niż wysłanie zapytania.
Jeśli chodzi o wydajność, najszybszym sposobem zapewnienia komunikacji opartej na UTF-8 między skryptem a serwerem MySQL jest prawidłowe skonfigurowanie serwera MySQL. Jako SET NAMES x
jest równoważny
do
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
podczas gdy SET character_set_connection = x
wewnętrznie wykonuje również SET collation_connection = <<default_collation_of_character_set_x>>
możesz także ustawić te zmienne serwera
statycznie w twoim my.ini/cnf
.
Należy pamiętać o możliwych problemach z innymi aplikacjami działającymi na tej samej instancji serwera MySQL i wymagającymi innego zestawu znaków.