python - Python 3 打印 utf-8 编码的字符串问题
问题描述
我正在从网络服务请求一个字符串。当我从程序中打印它时:
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
以使其成为十六进制,然后再对其进行解码。你有什么解决办法!?
解决方案
您需要指定编码,以便解释器知道如何解释数据:
s = "\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612"
y = s.encode('raw_unicode_escape')
print (y) # is a bytes object now!
print (y.decode('utf-8'))
出去:
b'\xd8\xaa\xd9\x85\xd9\x84\xd9\x8a612'
تملي612
推荐阅读
- android - navigator.pop() 后无法更新状态
- arduino - 如何获取上传固件的日期和时间?
- android - 在 Android Studio 中无法导入 kotlin。无法下载 kotlinx-coroutines-core-1.3.7.jar (org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7)
- html - How to place two elements inside of an hexagon in HTML?
- c++ - 基于条件的模板重载
- java - Postgres 数据库设置以允许 ddl 生成
- ios - 为什么 UITextView 会闪烁?
- macos - macOS 上的 l2tp/ipsec client-vpn docker 无法连接 vpn-server,注意:“我们要求 IKEv1 对等体具有 ID 'xxx.xxx.xxx.xxx',但对等体声明'%any'”
- magento - 一些用户说他们无法在网站上看到折扣,但是当我们从我们的最后检查时,它在 magento 2.1.1 中可见
- teiid - Teiid 嵌入式缓存最大条目