我正在从网络服务请求一个字符串。在程序中打印它时:
当我在Python3的CLI中执行时:
我可以如何用Python3编写程序打印此内容?
variable = getFromNetwork()
print(variable)
当我使用python3 net.py
执行它时,会得到:
\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612
当我在Python3的CLI中执行时:
>>> print("\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612")
تÙ
Ù
Ù612
当我在Python2 CLI中执行时,我得到了正确的结果:
>>> print("\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612")
تملي612
我可以如何用Python3编写程序打印此内容?
编辑
执行以下代码后:
print(print(type(variable), repr(variable)))
收到
<class 'str'> '\\xd8\\xaa\\xd9\\x85\\xd9\\x84\\xd9\\x8a612'
我认为应该先移除\\x
,将其转换为十六进制,然后进行解码。你有什么其他解决方案吗?
print(b"\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612".decode('utf-8'))
- Maurice Meyerprint(variable)
实际上会输出\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612
、"\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612"
还是b"\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612"
? - MisterMiyagi\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612
。 - user10734089