【发布时间】:2012-12-14 06:10:11
【问题描述】:
我经常有一个字符串“百分比编码”,例如%D1%84%D0%B0%D0%B9%D0%BB,如果它是链接的一部分,现代浏览器会正确呈现为файл。
我想知道:有没有一种简单的方法可以通过使用sed 或其他命令行工具来“呈现”具有上述百分比编码的文本文件(或简单地以百分比编码的输入字符串)?
【问题讨论】:
标签: ubuntu unicode sed command-line-interface
我经常有一个字符串“百分比编码”,例如%D1%84%D0%B0%D0%B9%D0%BB,如果它是链接的一部分,现代浏览器会正确呈现为файл。
我想知道:有没有一种简单的方法可以通过使用sed 或其他命令行工具来“呈现”具有上述百分比编码的文本文件(或简单地以百分比编码的输入字符串)?
【问题讨论】:
标签: ubuntu unicode sed command-line-interface
Python 可以使用urllib.unquote_plus:
#!/usr/bin/env python2
import sys
import urllib
print urllib.unquote_plus("%D1%84%D0%B0%D0%B9%D0%BB")
您可以设置别名以使用快速 cli 命令: http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
【讨论】:
unquote_plus 仅将 %XX 和 + 解码为空格。您可以将其应用于整个文本文件。如果包含+你想保留,也可以使用普通的unquote:docs.python.org/2/library/urllib.html#utility-functions
for line in f: 对其行进行迭代(如链接中所示)并在每一行上分别应用取消引用。您还需要在最后关闭文件。