-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Supplying Unicode string for basic_publish raises an exception. #4
Comments
I was bit by this today when my application code was generating unicode routing keys, even if calling |
In the commit fc6f87d I made an attempt to automatically convert all strings to and from utf-8. (except properties and tables, where unicode support is not updated here). It's kind of okay, but:
Actually, I'm less sure that Puka should deal with unicode at all. |
@majek - we are bitten by those issues too. We're getting around it by normalizing all strings going into puka using str() and using an abstract wrapper around it: def send(self, message):
self._client = puka.Client("amqp://"+str(self._messagingServer))
promise = self._client.connect()
self._client.wait(promise)
promise = self._client.queue_declare(queue = self._messageQueue)
self._client.wait(promise)
promise = self._client.basic_publish(exchange = "", routing_key = self._messageQueue, body = str(message), mandatory = True)
self._client.wait(promise)
promise = self._client.close()
self._client.wait(promise) It would be nice to normalize everything to UTF-8/Unicode inside puka given the international nature of most applications nowadays. str()/ASCII should be the exception, not the rule, in our opinion (we've dealt with a lot of i18n implementations in the last 7 years). Thoughts? |
Here's the problem: I could run So in balance, unfortunately, it's "cheaper" for me to do nothing and get users to supply strings, as opposed to normalizing all the time and slow down puka... |
It should just work.
The text was updated successfully, but these errors were encountered: