ChatterBot is able to handle unicode values correctly. You can pass to it
non-encoded data and it should be able to process it properly
(you will need to make sure that you decode the output that is returned).

Below is one of ChatterBot’s tests from tests/test_chatbot.py,
this is just a simple check that a unicode response can be processed.

deftest_get_response_unicode(self):""" Test the case that a unicode string is passed in. """response=self.chatbot.get_response(u'سلام')self.assertGreater(len(response.text),0)

This test passes in both Python 2.7 and 3.x. It also verifies that
ChatterBot can take unicode input without issue.