База в utf-8, соединение с базой тоже.
Так как данные нужно загрузить в excel, использую функцию iconv()
Скрипт, который выгружает в ексель сохранен в cp1251, т.к. в нем тоже присутствует кириллица для вывода.
while($res = mysql_fetch_assoc($sql))
{
echo iconv("UTF-8", "CP1251", $res['row1']);
/* тут много понаписано */
echo iconv("UTF-8", "CP1251", $res['row2']);
/* тут много понаписано */
echo iconv("UTF-8", "CP1251", $res['row3']);
}
В екселе получаются иероглифы. Смотрел в декодере, там по разному показывает... то CP1258 → CP1251, то CP1252 → CP1251.
Причем иероглифы как в тексте из базы, так и те, которые в самом скрипте написаны.
ЗЫ: если исправить первую конвертацию на несуществующую, например echo iconv("UTF-8dw", "CP1251", $res['row1']); эта строка не выводится, но зато всё остальное показывает как надо...
ЗЫЫ:
Array
(
[input_encoding] => ISO-8859-1
[output_encoding] => ISO-8859-1
[internal_encoding] => ISO-8859-1
)
Почему так? о_О