Add check for UTF-8 encoding (#131) (#135)

Also moved workaround from #117 to common place - gdbinit.py
pull/142/head
Disconnect3d 9 years ago committed by Zach Riggle
parent 53a7e3f859
commit 94bc5910d9

@ -4,6 +4,8 @@ from __future__ import print_function
from __future__ import unicode_literals
import sys
import six
import locale
from os import path
directory, file = path.split(__file__)
@ -12,4 +14,22 @@ directory = path.abspath(directory)
sys.path.append(directory)
# this is an unconventional workaround to
# support unicode printing for python2
# https://github.com/pwndbg/pwndbg/issues/117
# on python3 it warns if the user has different
# encoding than utf-8
encoding = locale.getpreferredencoding()
if six.PY2:
reload(sys)
sys.setdefaultencoding('utf-8')
elif encoding != 'UTF-8':
print('******')
print('Your encoding ({}) is different than UTF-8. pwndbg might not work properly.'.format(encoding))
print('You might try launching gdb with:')
print(' LC_ALL=en_US.UTF-8 PYTHONIOENCODING=UTF-8 gdb')
print('Make sure that en_US.UTF-8 is activated in /etc/locale.gen and you called locale-gen')
print('******')
import pwndbg # isort:skip

@ -8,7 +8,6 @@ from __future__ import unicode_literals
import sys
import gdb
import six
import pwndbg.android
import pwndbg.arch
@ -73,14 +72,6 @@ try:
except:
pass
# this is an unconventional workaround to
# support unicode printing for python2
# https://github.com/pwndbg/pwndbg/issues/117
if six.PY2:
reload(sys)
sys.setdefaultencoding('utf-8')
__all__ = [
'arch',
'auxv',

Loading…
Cancel
Save