有Python中的編解碼器,將逃避一切,這是不是在48-57或65-122 ASCII範圍(即非字母數字)編碼的Python爲*僅*字母數字
唯一異常將是一個斜槓和反斜槓字符。
理想情況下,我會想的東西轉換是這樣的:
/MyString/My#^/Blah/
要這樣:
/MyString/My\x23\x5e/Blah/
我知道有一個字符串逃逸的編碼,這有類似的功能,但我需要一個自定義的要編碼的字符範圍。我正在尋找聰明的建議或模塊,可以有效地做到這一點。
謝謝!
有Python中的編解碼器,將逃避一切,這是不是在48-57或65-122 ASCII範圍(即非字母數字)編碼的Python爲*僅*字母數字
唯一異常將是一個斜槓和反斜槓字符。
理想情況下,我會想的東西轉換是這樣的:
/MyString/My#^/Blah/
要這樣:
/MyString/My\x23\x5e/Blah/
我知道有一個字符串逃逸的編碼,這有類似的功能,但我需要一個自定義的要編碼的字符範圍。我正在尋找聰明的建議或模塊,可以有效地做到這一點。
謝謝!
可以使用re.sub
與函數參數如下:
s = "/MyString/My#^/Blah/"
import re
print re.sub(r'[^\w/\\]', lambda m: '\\x%x' % ord(m.group(0)), s)
#/MyString/My\x23\x5e/Blah/
我還沒有看過這個,但首先想到的是字符串類翻譯功能。
http://docs.python.org/library/string.html#string.translate
如果你正確地整理了一下編碼字符串(即寫一個腳本這樣做)的翻譯應該做的工作。 希望有所幫助。
第一件事情就是來到我的腦海過,但後來考慮這個問題,這將是一個巨大的痛苦寫的轉換表「的所有字符除了...「 – 2012-07-06 06:05:22
謝謝!我認爲這應該可以做到。 – chaimp 2012-07-06 06:54:04