2013-02-17 67 views
0

我使用URL查詢lynx瀏覽器並從終端獲取輸出,但問題是輸出來自祕魯網站,西班牙字符未顯示正確地在終端上。我將-assume_charset和-assume_unrec_charset標誌與我對URL的調用一起傳遞,所以如果網站沒有指定一個字符集,它應該用指定的字符集替換字符集。對於這兩個參數,我嘗試過拉丁文1,拉丁文3和拉丁文4,而且他們都沒有工作。我想知道如何解決這個問題。我正在使用python subprocess模塊​​並將lynx查詢作爲參數傳遞給subprocess.Popen(...),然後從STDOUT讀取輸出。我的代碼如下:在Python終端中使用lynx +顯示西班牙文字符不工作

import subprocess 
def get_urlData(url): 
    cmd = "lynx -dump -nolist -notitle -assume_charset =\"ISO-8859-1\" -assume_unrec_charset=\"ISO-8859-1\" "+url 
    lynx = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) 
    file_data = lynx.stdout.read() 
    #file_data = file_data.decode('ISO-8859-1','replace') 
    return file_data 

當我存儲返回file_data中的對象並嘗試打印蟒蛇終端上,下面是輸出我得到它我包括澄清問題的一部分:

每\ xedodo:Periodo總統府2006- 2011. Legislatura:西甲\ n Legislatura Ordinaria 2010 \ N還N \ xfamero:04903/2010-CR日期星Presentaci \ u0137n:2011年7月13日\ n
Proponente:Congreso \ n
Grupo Parlamentario:Multipartidario \ n
T \ xedtulo:LEY Q UE EXTINGUE LA DEUDA TRIBUTARIA PROVENIENTE DE LA \ n IMPORTACI \ u0136N Y/O VENTA DE COMBUSTIBLE TURBO A1 \ n

顯然字符\ u0137需要一些其他西班牙字符,但我不知道如何得到它顯示在我的終端。任何幫助,將不勝感激。

回答

0

\ u0136和\ u0137是UTF字符,您在cmd中的字符集是ISO-8859-1 ...您必須具有相同的字符enconding。

相關問題