Найти - Пользователи
Полная версия: Разница в кодировках Windows 7 и Windows Server 2008
Начало » Python для экспертов » Разница в кодировках Windows 7 и Windows Server 2008
1
Bigmax
Добрый день.
Столкнулся со следующей проблемой и не могу понять почему так происходит. Скрипт забирает из БД данные и пересылает их по почте. Если скрипт запускается с машины с Windows 7 то на почту приходит совершенно корректное читаемое письмо, если скрипт запускается с Windows Server 2008 то на почту приходит письмо с кракозябрами - и кракозябры в кодировке CP-1252. В таком случае приходится принудительно делать преобразование - encode('1252').decode('1251') и тогда все корректно.
Помогите понять в чем разница?
PEHDOM
Bigmax
Помогите понять в чем разница?
МБ в региональных настройках веды? 1252 латиница, 1251 - кирилица.
Каким образом осуществляеться отправка е-мейла? это стороняя программа или мыло отправляет сам скрипт используя чтото типа smtplib?
Bigmax
Почта отправляется из скрипта через smtplib. Честно говоря, вообще непонятно как винда влияет на данные, которые запросом берутся из БД, сохраняются в переменную и передаются в функцию отправки почты. Я пробовал ради интереса менять chcp у винды на сервере, но это конечно ничего не дало.
sander
Bigmax
в бд какая кодировка?
Bigmax
В БД стандартная виндовая 1251.
Bigmax
Сверил региональные настройки на обеих машинах - идентично, разница только в том что Windows 7 на русском языке, а Windows Server 2008 на англ. Но язык системы стоит русский и там и там.
PEHDOM
там в “язык и региональные стандарты” , вкладка “дополнительно”, секция “язык программ не поддерживающих Юникод” у вас на сервере скорее всего английский, попробуйте поменчять на Русский.

Bigmax
Windows 7 на русском языке, а Windows Server 2008 на англ. Но язык системы стоит русский и там и там.
Это как? язык интерфейса чтоли? тогда как вы определили что 2008 английская? или раскладка клавиатуры?
Bigmax
PEHDOM
Это как? язык интерфейса чтоли? тогда как вы определили что 2008 английская? или раскладка клавиатуры?
Да, язык интерфейса не серваке англ. Не думаю что это должно повлиять

Кажется я нашел решение - я для подключения к БД использую pymssql и, подробнее изучив документацию, обнаружил опцию для метода connect(charset=“cp1251”) - если ее указать то приходит совершенно корректное письмо, как для Windows 7 так и для Windows Server 2008.

Правда, саму причину такого поведения пересылки одних и тех же данных понять пока не получилось.
Bigmax
PEHDOM
там в “язык и региональные стандарты” , вкладка “дополнительно”, секция “язык программ не поддерживающих Юникод” у вас на сервере скорее всего английский, попробуйте поменчять на Русский.
Там стоял Russian(Russia)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB