2013-12-26 1 views
2

Я написал простую программу python в версии 2.7.6 (32 бит). Но когда я показываю какое-либо сообщение в окне сообщения, он приходит на какой-то странный язык. Код нижеПрограмма Python, отображающая сообщения на разных языках, чем английский

import Tkinter as tk 
import win32com.client 
import pythoncom 
import ctypes 
import sys 
import glob 
import sys 
import os 

MessageBox = ctypes.windll.user32.MessageBoxW 

if __name__ == "__main__": 
    MessageBox(None, "Hello", 'Window title',0) 

и это выход

error output

+0

Это ваша полная программа? –

+1

это пример программы, которую я написал, чтобы показать свою проблему. –

+0

Я все еще не уверен, что это проблема с установщиком, откуда я скачал. URL, который я загрузил, был http://www.python.org/download/releases/2.7.6/ –

ответ

5

Вам нужно отправить строку Юникода; потому что вы используете версию Юникода окна сообщения MessageBoxW, если вы хотите отправить обычные строки ASCII вам нужно использовать MessgeBoxA

ctypes.windll.user32.MessageBoxA(None, 'Hello', 'Window title', 0) # or 
ctypes.windll.user32.MessageBoxW(None, u'Hello', u'Window title', 0) 
+0

это сделал произведение. но мне никогда не приходилось это делать, когда я установил python 3.3. так это отличается от 2.7 и 3.3? \ –

+0

В Python3 [все строки являются объектами юникода] (http://docs.python.org/3.3/howto/unicode.html#the-string-type), поэтому это сработало , –

+0

Хорошо спасибо за эту информацию. –

Смежные вопросы