【发布时间】:2015-12-25 22:44:45
【问题描述】:
我尝试使用 python dbus 模块连接到 WEP 安全 WiFi
我填写网络配置字典如下:
nw_config['wep_key0'] = binascii.unhexlify(mypassword)
我的密码是十六进制字符串
当mypassword设置为'12345678'时不会出错,但是当输入英文字母如a、b、c、d、e、f时。
例如:
nw_config['wep_key0'] = binascii.unhexlify('abcdef')
会出现如下错误
UnicodeError:要通过 D-Bus 发送的字符串参数必须是有效的 UTF-8,并且没有非字符代码点
只是不明白这两种情况有什么区别,因为它们都应该是有效的十六进制字符串?
更新:dbus相关代码
args = dbus.Dictionary(nw_config)
bus = dbus.SystemBus()
wpas_obj = bus.get_object(WPAS_DBUS_SERVICE, WPAS_DBUS_PATH)
wpas = dbus.Interface(wpas_obj, WPAS_DBUS_SERVICE)
if_obj = bus.get_object(WPAS_DBUS_SERVICE, path)
path = wpas.GetInterface(if_obj, WPAS_DBUS_IFACE)
network = iface.AddNetwork(args) # this line has problem
【问题讨论】:
-
mypassword 是什么数据?是ASCII吗?还是 ASCII 编码的十六进制?
-
我认为是ASCII编码的十六进制
标签: python unicode hex ascii wep