我使用内置的拆分功能,但遇到了一个问题:
>>> 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]
ąśżźć