我用一个URL查询lynx浏览器,并从终端获得输出,但问题是输出来自秘鲁的一个网站,而西班牙语字符在终端上没有正确显示。我在对url的调用中传递了-assume\u charset和-assume\u unrec_字符集标志,因此如果网站没有指定字符集,它应该用我指定的字符集替换它。对于这两个参数,我尝试了拉丁语1、拉丁语3和拉丁语4,但似乎都不起作用。我想知道如何解决这个问题。我使用python子进程模块并将lynx查询作为参数传递给子流程.Popen(…)然后从STDOUT读取输出。我的代码如下:
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_数据存储在一个对象中并尝试在python终端上打印它时,以下是我得到的输出的一部分,我将包括以下内容以澄清问题:
Per\xedodo:Periodo de Gobierno 2006-2011年。
立法会:Primera\n Lectura Ordinaria 2010\n\xfamero:04903/2010-CR Fecha Presentaci\u0137n:07/13/2011\n
支持者:Congreso\n
Grupo Parlamentario:多部分\n
T\xedtulo:LEY QUE extrigue LA DEUDA支流PROVENIENTE DE LA\n IMPORTACI\u0136N Y/O VENTA DE可燃涡轮A1\n
很明显,字符\u0137需要是其他西班牙字符,但我不知道如何让它显示在我的终端上。任何帮助都将不胜感激。在
\u0136和\u0137是UTF字符,您在cmd中的字符集是ISO-8859-1。。。你必须有同一个角色。在
相关问题 更多 >
编程相关推荐