Is wrong (python will try to convert to mbcs, but with ascii source encoding). Generally one should be careful with win32api args, and env variables (including cmdline). Everything else in python is unicode....
Also, it worked with some unicode, and not others.
To demonstrate the dialog bug:
dlgSettings = DlgSettings(self, self)
File "C:\BitcoinArmory-master\BitcoinArmory-master\qtdialogs.py", line 10073, in __init__
'(%s)' % BTC_HOME_DIR, size=2)
File "C:\BitcoinArmory-master\BitcoinArmory-master\qtdefines.py", line 212, in __init__
self.setText(txt, **kwargs)
File "C:\BitcoinArmory-master\BitcoinArmory-master\qtdefines.py", line 215, in setText
text = unicode(text)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 51: ordinal not in range(128)
Traceback (most recent call last):
File "armoryqt.py", line 716, in openSettings
dlgSettings = DlgSettings(self, self)
File "C:\BitcoinArmory-master\BitcoinArmory-master\qtdialogs.py", line 10073, in __init__
'(%s)' % BTC_HOME_DIR, size=2)
File "C:\BitcoinArmory-master\BitcoinArmory-master\qtdefines.py", line 212, in __init__
self.setText(txt, **kwargs)
File "C:\BitcoinArmory-master\BitcoinArmory-master\qtdefines.py", line 215, in setText
text = unicode(text)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 51: ordinal not in range(128)
Once again, we're trying to convert mbcs string without specifying source encoding (ie wherever the string comes from should be decode('mbcs') first).
Seems like Qt suffers from same behaviour (mbcs strings are treated as ascii).
All of this madness probably stems from the fact that mbcs is only subset of utf16.
Partial fix for command line:
https://github.com/wyuzhe/BitcoinArmory/commit/fd7ff04bd0b343ad119980c85996840803771a1d