Мой совет - использовать UTF-8 в качестве исходной кодировки файлов .php и (если возможно) также выходной кодировки. С помощью сжатия gzip разница между размерами ответов windows-1251 и UTF-8 (даже для в основном кириллического текста) минимальна, а UTF-8 лучше во многих отношениях.
Как вы сказали, simplexml преобразует windows-1251 в UTF-8 при импорте xml, и вам не нужно беспокоиться о каких-либо кодировках.
Если у вас есть для использования windows-1251 для вывода, используйте что-то вроде:
iconv_set_encoding ("internal_encoding", "UTF-8");
iconv_set_encoding («output_encoding», «windows-1251»);
ob_start ( "ob_iconv_handler");
Единственное исправление для UTF-8 в исходных файлах PHP - это классы символов в регулярных выражениях: /[ю]/
не будет работать, как вы могли ожидать, /(ю)/
будет.