0

lynxブラウザにURLを照会して端末から出力を取得していますが、問題は、出力がペルーのWebサイトからのものであり、スペイン語の文字が端末に正しく表示されていないことです。urlの呼び出しとともに-assume_charsetフラグと-assume_unrec_charsetフラグを渡しているので、Webサイトで指定されていない場合は、指定した文字セットに置き換える必要があります。そして、これらのパラメーターの両方について、ラテン語1、ラテン語3、ラテン語4を試しましたが、どれも機能していないようです。この問題を解決する方法を教えてください。Pythonサブプロセスモジュールを使用して、lynxクエリをパラメータとしてsubprocess.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_dataをオブジェクトに保存し、それをpythonターミナルで印刷しようとすると、問題を明確にするために含まれている出力の一部が次のようになります。

Per \ xedodo:Periodo de Gobierno 2006-2011。Legislatura:Primera \ n Legislatura Ordinaria 2010 \ n N \ xfamero:04903 / 2010-CR Fecha Presentaci \ u0137n:07/13/2011 \ n
提案者:Congreso \ n
Grupo Parlamentario: Multipartidario \ n
T \ xedtulo:LEY QUE EXTINGUE LA DEUDA TRIBUTARIA PROVENIENTE DE LA \ n IMPORTACI \ u0136N Y / O VENTA DE COMBUSTIBLE TURBO A1 \ n

明らかに、文字\ u0137は他のスペイン語の文字である必要がありますが、それを端末に表示する方法がわかりません。どんな助けでもいただければ幸いです。

4

1 に答える 1

0

\u0136 と \u0137 は UTF 文字です。cmd の文字セットは ISO-8859-1 です... 同じ文字エンコーディングが必要です。

于 2013-08-15T18:39:41.800 に答える