You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下wget指定UTF-8编码下载仍乱码,如何解决?

解决Ubuntu 16.04中wget下载俄文网站出现乱码的问题

我来帮你搞定这个乱码问题~你遇到的情况大概率是因为目标俄文网站实际使用的编码并非UTF-8,而是俄语区常用的Windows-1251(CP1251)编码,再加上你的wget版本是1.17.1(旧版本对编码的处理逻辑和新版本有差异),所以直接指定--remote-encoding=UTF-8反而会让wget用错误的编码解析内容,导致乱码。咱们一步步来修复:

第一步:确认服务器实际返回的编码

先搞清楚目标服务器到底在用什么编码,执行这条命令查看响应头:

wget --server-response --spider "http://www.altai_terr.vybory.izbirkom.ru/region/altai_terr?action=ik&vrn=4224065120534"

在输出里找Content-Type字段,比如如果看到Content-Type: text/html; charset=windows-1251,就确认是CP1251编码了。

第二步:正确下载并转码成UTF-8

方法1:先下载再转码

先按服务器的原始编码下载文件:

wget --remote-encoding=CP1251 -O temp_altai.html "http://www.altai_terr.vybory.izbirkom.ru/region/altai_terr?action=ik&vrn=4224065120534"

然后用iconv工具把它转成UTF-8编码:

iconv -f CP1251 -t UTF-8 temp_altai.html > altai_terr.html

之后查看altai_terr.html就不会乱码了,临时文件temp_altai.html可以删掉。

方法2:一步到位用管道转码

不想生成临时文件的话,直接用管道把下载的内容实时转码:

wget --remote-encoding=CP1251 -O - "http://www.altai_terr.vybory.izbirkom.ru/region/altai_terr?action=ik&vrn=4224065120534" | iconv -f CP1251 -t UTF-8 > altai_terr.html

第三步:确保本地终端用UTF-8编码

有时候乱码也可能是终端本身的编码不对,执行echo $LANG检查,如果输出不是类似en_US.UTF-8或者ru_RU.UTF-8,可以临时设置:

export LANG=en_US.UTF-8

或者修改/etc/default/locale文件永久设置(需要重启生效)。

内容的提问来源于stack exchange,提问作者Ildar Gabdrakhmanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:40:35