我在Python中遇到了一些非常基本的字符串问题(我无法解决)。基本上,我试着做以下事情:
'# read file into a string
myString = file.read()
'# Attempt to remove non breaking spaces
myString = myString.replace("\u00A0"," ")
'# however, when I print my string to output to console, I get:
Foo **<C2><A0>** Bar
我以为“\u00A0”是unicode不间断空格的转义码,但显然我做得不正确。你知道我做错了什么吗?
在给一个旧问题添加另一个答案之前,我犹豫不决,但是由于Python3将Unicode“不间断空格”字符计算为空白字符,并且由于字符串默认为Unicode,所以可以使用
join
和split
来去掉字符串中的不间断空格,如下所示:当然,这也会改变任何其他空格(制表符、换行符等)。注意这只是Python3号。
不,
u"\u00A0"
是不间断空格的转义代码。"\u00A0"
是6个字符,它们不是任何类型的转义代码。Read this。您没有unicode字符串,而是一个UTF-8字节列表(这是Python 2.x中的字符串)。
试试看
最好是切换到unicode——请参见this article以获取想法。所以你可以说
而且它也应该可以工作(注意:我现在还没有Python 2.x),尽管在将它发送到文件或打印到屏幕时,需要将它转换回字节(二进制)。
相关问题 更多 >
编程相关推荐