много курил маны на эту тему.
вот выдержка из phpmyadmin-переменные
character set client utf8
(Глобальное значение) latin1
character set connection utf8
(Глобальное значение) latin1
character set database latin1
character set results utf8
character set server latin1
character set system utf8
collation connection utf8_general_ci
(Глобальное значение) latin1_swedish_ci
глобальное значение это значение по умолчанию параметра указанного в паре первым
как видно у меня полный разноброд идет в этом смысле, но при этом все работает!!!
Самое главное чтобы в скриптах указывать серверу в каком виде ты хочешь отправлять данные и получать ответ!
а сервер сам уже разберется, и перекодирует то что есть в базе в ту кодировку которую ты запросил и от клиента примет ответ и перекодирует пот себя на хранение.
Главное чтобы данные которые уже попали на сервер не были восприняты уже не правильно.
Может возникнуть к примеру такая ситуация. в запросе на запись данных в таблицу кодировку не указываете, сервер берет свою кодировку по умолчанию, а она не совпадает с той в которой идут данные. на сервер сразу заливается
не то что надо. и потом чтобы данные получить в нужной виде, хоть обтанцуйся ничего не получиться(ну или придется танцевать с очень большим бубном)
Поэтому если сам хозяин сервера мускуль, выставь все кодировки в mysql.conf в те которые ты пользуешь. и в скриптах тебе не придеться вообще их указывать. если не твой, ну тогда есть одна переменная set names кажеться, которая при подключении скрипта включит сразу три параметра (уж не помню каких) в нужную тебе кодировку. и запись и чтение из базы и сами запросы сервер распознает как надо.
PS.кстати, посмотри как кодировки выставлятся в запросах CMS , и делай так же. создатели этих вещей уж точно ногу скурили на этом, вот поэтому у них все работает
А при выводе данных в html не надо забывать еще про связку кодировок веб-сервер--клиент.
то же и про консоль, и не надо лезть в переменные окружения, достаточно указать серву, какая у тебя кодировка.