python替換文本致使文字丟失詳解

最近從網頁爬取一個文本,看起來像是這樣(包含了換行和空格):html

Bitcoin
                            
比特幣

當我用python的字符串replace方法替換空格和\n後,再print,發現了這樣的狀況:python

比特幣

wtf?我僅僅是這麼作了而已:windows

content = content.replace(' ', '')
content = content.replace('\n', '')
print content

而後Bitcoin字段就消失了?我並無替換Bitcoin啊數組

到底出了什麼問題呢?編碼

 

答案超乎個人意料——操作系統

 

咱們加一個方括號,把它變成數組,這樣就能查看編碼了,因而:code

content = tag.h1.get_text()
print [content], "--------------\n", content
content = content.replace(' ', '')
print [content], "--------------\n", content
content = content.replace('\n', '')
print [content], "--------------\n", content

它的打印結果是:htm

[u'\n\r\nBitcoin\r\n                            \r\n\u6bd4\u7279\u5e01                        '] --------------


Bitcoin
                            
比特幣                        
[u'\n\r\nBitcoin\r\n\r\n\u6bd4\u7279\u5e01'] --------------


Bitcoin

比特幣
[u'\rBitcoin\r\r\u6bd4\u7279\u5e01'] --------------
比特幣

 

竟然含有\r(極有多是windows操做系統特有的問題)咱們如何還原呢?固然是把\r也替換掉字符串

content = content.replace('\r', '')
print [content], "--------------\n", content

# 打印結果
[u'Bitcoin\u6bd4\u7279\u5e01'] --------------
Bitcoin比特幣
相關文章
相關標籤/搜索