在python终端中使用lynx+显示不工作的西班牙语字符

2024-09-26 05:01:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我用一个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需要是其他西班牙字符,但我不知道如何让它显示在我的终端上。任何帮助都将不胜感激。在


Tags: cmd终端urldata网站iso字符file