тема древняя, но постоянно до сих пор народ нарывается..
поразительно :)
вот, повесил пример загрузки всяких разных кодировок
http://www.noregret.org/test/encoding/
в исходнике то же самое.
есть одна простая вещь, которая может стать сильными граблями.. если вы генерите из русского текста (в обычном анси-формате вин1251) юникод, то он будет корректно отображаться только если у вас кодировка по умолчанию для не-юникодных программ указана РУССКАЯ.
это оч логично и естесственно, но может быть не совсем очевидно :)
вот тут (вин ХП):
http://www.noregret.org/test/encoding/encoding.gif
в исходнике есть юникод, сгенеренный при дефолтовой вин1251 (русская) и при дефолтовой вин1252 (английская, сша)
видим что получилось.