qemu-ga in Windows may return error message with multibyte characters when the guest OS language is set to other than English. To display such messages correctly, this encodes the message based on the locale settings.
Signed-off-by: Tomoki Sekiyama <tomoki.sekiy...@hds.com> --- QMP/qmp.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/QMP/qmp.py b/QMP/qmp.py index c551df1..ee21819 100644 --- a/QMP/qmp.py +++ b/QMP/qmp.py @@ -11,6 +11,7 @@ import json import errno import socket +import locale class QMPError(Exception): pass @@ -133,7 +134,8 @@ class QEMUMonitorProtocol: def command(self, cmd, **kwds): ret = self.cmd(cmd, kwds) if ret.has_key('error'): - raise Exception(ret['error']['desc']) + enc = locale.getpreferredencoding() + raise Exception(ret['error']['desc'].encode(enc)) return ret['return'] def pull_event(self, wait=False):