Bug.__str__: encode string before returning
authorEduardo Habkost <ehabkost@redhat.com>
Mon, 27 Apr 2009 15:42:08 +0000 (12:42 -0300)
committerEduardo Habkost <ehabkost@redhat.com>
Tue, 18 Aug 2009 20:47:40 +0000 (17:47 -0300)
commit0c06e3225bf33fbfe59be3e01f75d50e7de778a2
treeebab13d129aa3ffe989a88a3797baac73eb75954
parentf9ffaf935292a167232f7e4f6d7a8bd041d73a8c
Bug.__str__: encode string before returning

'print bug' calls str(), and even when the LC_* environment variables are set
to UTF-8, str() uses the 'ascii' codec to encode the unicode string, and causes
errors when "print bug" or antyhing that calls str(bug) is used. Example:

    File "/usr/bin/bugzilla", line 507, in main
      print b
  UnicodeEncodeError: 'ascii' codec can't encode character u'\u2018' in position 41: ordinal not in range(128)

Fortunately the command-line tool was already changed to not use "print bug"
anymore, but this should make other code using "print bug" or "str(bug)" safer.

This patch makes __str__() encode the unicode string to the system locale,
making 'print bug' and str(bug) work as expected.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
bugzilla/base.py