在Python中将非英语单词转换为%分隔的字符串

时间:2014-01-12 08:48:27

标签: python string python-3.x replace

我有一个像这样的波斯语:word = می‌باشد。 如果我运行这个:

word.encode(encoding='utf-8')

我在Python IDLE中看到了这一点:

b'\xd9\x85\xdb\x8c\xe2\x80\x8c\xd8\xa8\xd8\xa7\xd8\xb4\xd8\xaf'

我想将上述行转换为删除b'的字符串,并将所有\x替换为%。 所以我想得到这个字符串:

%d9%85%db%8c%e2%80%8c%d8%a8%d8%a7%d8%b4%d8%af    

在Python 3中执行此操作的最佳方法是什么? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:7)

使用urllib.parse.quote

>>> import urllib.parse
>>> word = 'می‌باشد'
>>> urllib.parse.quote(word, encoding='utf-8')
'%D9%85%DB%8C%E2%80%8C%D8%A8%D8%A7%D8%B4%D8%AF'

您可以省略encoding='utf-8',因为默认使用utf-8编码。