According to the docs,內建的字符串編碼string_escape
:的Python 「string_escape」 與 「unicode_escape」
農產品[s]的一個字符串,它是適合作爲字符串中Python源代碼
字面...而unicode_escape
:
農產品[s]的一個字符串,它是適合以Unicode字面在Python源代碼
所以,他們應該有大致相同的行爲。但是,他們似乎區別對待單引號:
>>> print """before '" \0 after""".encode('string-escape')
before \'" \x00 after
>>> print """before '" \0 after""".encode('unicode-escape')
before '" \x00 after
的string_escape
逃逸單引號,而Unicode的一個沒有。是否安全地假設我可以簡單地:
>>> escaped = my_string.encode('unicode-escape').replace("'", "\\'")
...並獲得預期的行爲?
編輯:只是要非常清楚,預期的行爲是得到適合作爲文字的東西。
這是一些unicode錯誤「不支持Unicode轉義序列」的最清晰答案,它甚至在2016年有效!謝謝! – dotslash 2016-07-09 10:23:49