我有以下字符串:
\n\ncbBb\xe2\x80\x99
最后一个字符是u\'\\u2019\'.
我尝试了以下方法:
\n\nvalue = "cbBb\xe2\x80\x99"\nvalue.replace(u"\\u2019", "-")\nvalue.encode(\'ascii\', \'ignore\')\nRun Code Online (Sandbox Code Playgroud)\n\n但当我尝试这样做时:
\n\nstr(value)\nRun Code Online (Sandbox Code Playgroud)\n\n我得到:
\n\ncan\'t encode character u\'\\u2019\' in position 4: ordinal not in range(256)\nRun Code Online (Sandbox Code Playgroud)\n\n我该如何解决这个问题?
\n在 python 2 中,字符串可以是 unicode 或只是常规字符串。replace()你应该通过u在字符串前面添加一个来指定它是一个 unicode 字符串来运行你的
value = u\'cbBb\xe2\x80\x99\'\nvalue = value.replace(u"\\u2019", "-")\nvalue.encode(\'ascii\', \'ignore\')\nprint(str(value)) #cbBb-\nRun Code Online (Sandbox Code Playgroud)\n\n也不replace()在队列中,您需要将其重新分配给某些东西。
旁注,您可能需要考虑切换到 Python 3,因为 Python 2 中的 unicode 处理有点麻烦。
\n