我使用Ruby打開URL並閱讀其內容。我正在閱讀的文件的內容類型是'text/plain'。從open(url)清除內容.read
問題是這包含一些我想逃避的字符。例如,在純文本中出現的字符之一是「\ 240」,這是連字符的ASCII碼。
我很好奇這是如何產生的,因爲我在文本中的任何地方都看不到連字符。然而,它無形中存在,當我使用puts
在控制檯中打印文本時會出現「\ 240」。
其次,我該如何逃避怪異角色的這種情況?理想情況下,我想要轉義所有形式爲「\ [某些數字]」的字符。我正在使用
"\240".gsub(Regexp.new("\\\d+"),"")
但它似乎沒有工作。
是否有更多的傳統方式來清除打開URL中的純文本內容?
連字符不是「\ 240」。連字符是一個較低的ASCII字符,'45.chr#=>「 - 」'。您正在看到高位字符。 –
你如何打開網址?顯示網址和一些示例代碼。 Net :: HTTP和Open :: URI讓你看看內容編碼,看看服務器認爲文件是什麼字符集。問題是服務器可能是錯的,但這是你的出發點。您可以執行一個'HEAD'請求來查找編碼,然後告訴Ruby在您收到實際正文時使用該編碼。這應該有助於避免被誤解的字符。 –