2016-11-16 82 views
1

似乎有很多關於在其他語言中這樣做的帖子,但我似乎無法弄清楚如何在Python中(我使用2.7)。替換或刪除python中的特定unicode字符

爲了清楚起見,我希望將字符串保存爲unicode,只需要替換某些特定的字符即可。

例如:

thisToken = u'tandh\u2013bm' 
print(thisToken) 

打印在中間的m破折號字。我只想刪除m-dash。 (但使用索引,因爲我希望能夠做到這一點的任何地方我發現這些特定的字符。)

我嘗試使用replace就像你使用任何其他字符:

newToke = thisToken.replace('\u2013','') 
print(newToke) 

但只是不起作用。任何幫助深表感謝。 Seth

+0

,如果你在你的文件的頂部使用'從__future__進口unicode_literals',所有的字符串文字自動unicode的,這將在這裏幫助(但要注意的驚喜,當一些字符串必須是字節,可以使用的'b'前綴)。 – RemcoGerlich

回答

5

您正在搜索要替換的字符串也必須是Unicode字符串。嘗試:

newToke = thisToken.replace(u'\u2013','') 
+1

事實上,如果第二個參數是'u''',那麼它可能是最好的:-) – RemcoGerlich

0

你可以看到答案在這個崗位:How to replace unicode characters in string with something else python?

解碼字符串爲Unicode。假設這是UTF-8編碼:

str.decode("utf-8") 

調用替換方法,並確保它傳遞一個Unicode字符串作爲其第一個參數:

str.decode("utf-8").replace(u"\u2022", "") 

編碼回UTF-8,如果需要的話:

str.decode("utf-8").replace(u"\u2022", "").encode("utf-8")