提交 460edfcb 编写于 作者: R Roger A. Light

Handle "unicode" type payloads on Python 2.7.

Thanks to Luc Milland.

Change-Id: I1f3bf49ed3845f61cbd31773fcf11a58943f8108
上级 4b83c206
......@@ -4,7 +4,8 @@ v1.0.2
- Fix "protocol" not being used in publish.single()
- Fix Client constructor for the case where "localhost" is unresolvable.
Closes #439277.
- Don't attempt to encode topic to utf-8 twice.
- Don't attempt to encode topic to utf-8 twice. Thanks to Luc Milland.
- Handle "unicode" type payloads on Python 2.7. Thanks to Luc Milland.
v1.0.1
======
......
#!/usr/bin/python
# vim: set fileencoding=utf-8
# Copyright (c) 2014 Roger Light <roger@atchoo.org>
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Distribution License v1.0
# which accompanies this distribution.
#
# The Eclipse Distribution License is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# Contributors:
# Roger Light - initial implementation
# This shows an example of using the publish.single helper function.
import sys
try:
import paho.mqtt.publish as publish
except ImportError:
# This part is only required to run the example from within the examples
# directory when the module itself is not installed.
#
# If you have the module installed, just use "import paho.mqtt.publish"
import os
import inspect
cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"../src")))
if cmd_subfolder not in sys.path:
sys.path.insert(0, cmd_subfolder)
import paho.mqtt.publish as publish
t=u"paho/test/single/ô"
publish.single(t, u"bôô", hostname="test.mosquitto.org")
......@@ -840,7 +840,7 @@ class Client(object):
raise ValueError('Invalid topic.')
if qos<0 or qos>2:
raise ValueError('Invalid QoS level.')
if isinstance(payload, str) or isinstance(payload, bytearray):
if isinstance(payload, str) or isinstance(payload, bytearray) or isinstance(payload, unicode):
local_payload = payload
elif isinstance(payload, int) or isinstance(payload, float):
local_payload = str(payload)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册