我使用内置的拆分功能,但遇到了一个问题:

>>> data = "test, ąśżźć, test2"
>>> splitted_data = data.split(",")
>>> print splitted_data
['test', ' \xc4\x85\xc5\x9b\xc5\xbc\xc5\xba\xc4\x87', ' test2']

为什么会这样?我该怎么做才能防止这种情况发生?
Python 2.7.1

最佳答案

这纯粹是从str.__repr__获得的输出(对字符串调用repr())。\xc4等只是实际的存储方式。当你打印出来的时候还是一样的:

>>> data = "test, ąśżźć, test2"
>>> data
'test, \xc4\x85\xc5\x9b\xc5\xbc\xc5\xba\xc4\x87, test2'
>>> print data
test, ąśżźć, test2

list.__str__list.__repr__使用字符串的表示形式,但如果访问其中的项,则仍然正确:
>>> splitted_data = data.split(",")
>>> splitted_data
['test', ' \xc4\x85\xc5\x9b\xc5\xbc\xc5\xba\xc4\x87', ' test2']
>>> print splitted_data[1]
 ąśżźć

09-03 20:16