А какую мы сегодня ошибку поймали!.. Ааа… закачаешься.
Проблемы возникли с локализацией программы. Локализатор работает нормально, но в виртуальной машине под Windows 2003 с дефолтовой кодировкой выставленной в английскую, русские буквы изображаются как знаки вопроса. Т.е. слова пишет русские — это видно по количеству букв, а сами буквы — знаки вопроса. При этом точно известно, что клиенту в браузер мы отдаем windows-1251.
Так вот. Лежит у нас на диске aspx-страница. В Visual Studio мы её редактируем как windows-1251. А после того как приложение установлено на target-систему — какая у неё кодировка?.. А кодировка у неё такая, какая установлена по умолчанию в системе для не-юникодных программ. Поэтому, ASP.NET подгружает страницу, при этом кириллица воспринимается (при преобразовании в юникод) им не как кириллица, а как всякие символы с умляутами, а затем, при рендеринге страницы в windows-1251, эти символы преобразуются в знаки вопроса, потому что в 1251 нет символов с умляутами.
Отсюда вывод: если вы хоть немного задумываетесь о локализации, даже в будущем, то либо держите .aspx-страницы сразу в Unicode, либо не помещайте в них ничего кроме ASCII.