wget和编码。如何强制utf-8?

wget和编码。如何强制utf-8?,utf-8,character-encoding,wget,iso-8859-1,cyrillic,Utf 8,Character Encoding,Wget,Iso 8859 1,Cyrillic,当我尝试下载链接时(ubuntu 16.04,wget 1.17.1): 我得到一个文件: >cat altai_terr\?action\=ik ... <div class="center-colm"> <h2>????????????? ???????? ?????????? ????</h2> <p> <strong>????? ????????: </strong>

当我尝试下载链接时(ubuntu 16.04,wget 1.17.1):

我得到一个文件:

>cat altai_terr\?action\=ik 

    ...
    <div class="center-colm">
    <h2>????????????? ???????? ?????????? ????</h2>
    <p>
    <strong>????? ????????: </strong><span id="address_ik"><span>656035, ????? ???????, ???????? ?.?.??????, 59</span></span>
    </p>
    ...
我检查已安装的区域设置:

…
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
…
ru_RU
ru_RU.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
…
没有“?”我如何下载文件

附言。 如果我运行python 2.7和以下代码:

x = 'http://www.altai_terr.vybory.izbirkom.ru/region/altai_terr?action=ik&vrn=4224065120534'
page_uik = requests.get(url = x)
print page_uik.text
我确实得到:

...
<div class="center-colm">
<h2>Участковая избирательная комиссия №1767</h2>
<p>
<strong>Адрес комиссии: </strong><span id="address_ik"><span>659595, Алтайский край, Усть-Пристанский район, село Коробейниково, улица Комсомольская, дом 33а</span>, дом культуры</span>
</p>
...
。。。
Участковая избирательная комиссия №1767

Аааааааааааааааааааааааааааааааа、аааа

...
这不是一项
wget
业务

您可以向Web服务器询问特定的编码,但Web服务器可能会忽略您

Webserver会告诉您他认为是什么编码,但永远不要相信服务器

HTML还允许作者指定编码(因此无需询问系统管理员/web管理员)

因此,在获得文档后,您的任务是检查它的编码,然后翻译它,并处理错误和异常。您可能会看到UTF-8站点的代码无效,或者也经常会看到具有多种编码的站点(通常是因为不同部分的动态生成,以及错误的编码假设)


因此,获取wget所提供的信息,您需要自己进行解码。

这不是
wget
业务

您可以向Web服务器询问特定的编码,但Web服务器可能会忽略您

Webserver会告诉您他认为是什么编码,但永远不要相信服务器

HTML还允许作者指定编码(因此无需询问系统管理员/web管理员)

因此,在获得文档后,您的任务是检查它的编码,然后翻译它,并处理错误和异常。您可能会看到UTF-8站点的代码无效,或者也经常会看到具有多种编码的站点(通常是因为不同部分的动态生成,以及错误的编码假设)


因此,获取
wget
提供给您的内容,您需要自己进行解码。

我必须使用以下命令在下载后转换文件:

iconv -f CP1251 -t UTF-8 altai_terr\?action\=ik

我必须使用以下命令在下载后转换文件:

iconv -f CP1251 -t UTF-8 altai_terr\?action\=ik

我相信我理解你的意思。我得到了我不知道编码的文件。我必须转换它。我尝试了几个选项,最后得到了这个结果:
code
iconv-f CP1251-t UTF-8 altai_terr\?action\=ik
code
耶。困难的部分是以可靠的方式获得CP1251。HTML应该告诉您什么是编码(我想您注意到HTTP给了您错误的编码)。Python也进行解码(Python口号:“包括电池”)。但我推荐python3,它纠正了编码方面的许多问题/错误。我相信我理解你的意思。我得到了我不知道编码的文件。我必须转换它。我尝试了几个选项,最后得到了这个结果:
code
iconv-f CP1251-t UTF-8 altai_terr\?action\=ik
code
耶。困难的部分是以可靠的方式获得CP1251。HTML应该告诉您什么是编码(我想您注意到HTTP给了您错误的编码)。Python也进行解码(Python口号:“包括电池”)。但是我推荐python3,它纠正了编码中的许多问题/错误。
iconv -f CP1251 -t UTF-8 altai_terr\?action\=ik