wget html乱码,wget 中文url

场景:wget中文url有关问题

wget中文url问题?

环境:ubuntu10.10 64bit,wget 1.12

现象:保存带中文URL的路径时中文乱码

参考:wget中文乱码

解决:

通过设置参数:--restrict-file-names=OS一样可以正确解决此问题

经过测试下面的解决办法,还是有问题:

1. 下载wget源代码

2. 编辑url.c:1403行修改为    if (FILE_CHAR_TEST (*p, mask) && !((*p | 0x0fffffff) == 0xffffffff)),红色部分就是添加的,详细上下文:

/* Walk the PATHEL string and check how many characters we'll need

to quote. */

quoted = 0;

for (p = b; p < e; p++)

if (FILE_CHAR_TEST (*p, mask) && !((*p | 0x0fffffff) == 0xffffffff))

++quoted;

3. 重新编译安装即可:

make

sudo make install

1 楼

skzr.org

2011-02-22

对于此方法,应该只适合linux,utf-8的系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题中提到的乱码问题是指在使用wget下载网页时,如果文件名含有非ASCII字符或其他特殊字符,会出现乱码的情况。解决这个问题有多种方法。 一种方法是在使用wget下载时,添加参数"--restrict-file-name=ascii",这样wget会将文件名限制为ASCII字符,从而避免乱码的问题。例如: wget --restrict-file-name=ascii -m http://ebook.elain.org [2] 另一种方法是修改wget的源代码,具体地说是修改url.c文件中的url_file_name()函数和相关宏。在FILE_CHAR_TEST()宏中,将中文字符当作普通字符对待,不进行URL编码。修改后的宏如下所示: #define FILE_CHAR_TEST(c, mask) \ ((opt.restrict_files_nonascii && !c_isascii ((unsigned char)(c))) || \ (!(filechr_table[(unsigned char)(c)] & (mask)))) 通过修改源代码,可以实现不对中文进行转义,从而解决中文乱码问题。需要注意的是,修改源代码需要具备一定的编程能力,并且需要重新编译wget才能生效。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [解决wget下载文件名乱码的一些方法](https://blog.csdn.net/weixin_34005042/article/details/93689789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值