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

为何两台配置相同的Windows 10机器运行getSymbols时一台正常一台报curl错误?

解决curl解压缩错误的实操方案

问题背景

两台Windows 10设备连接同一Wi-Fi并运行RStudio,机器1执行x <- getSymbols("VTI",src="yahoo")正常返回"VTI",机器2却反复出现两类curl解压缩错误:

Error in curl::curl_fetch_memory(cu, handle = h) : Error while processing content unencoding: invalid block type
Error in curl::curl_fetch_memory(cu, handle = h) : Error while processing content unencoding: too many length or distance symbols

已尝试更换Wi-Fi、重启设备/RStudio、关闭防火墙,问题依旧,且机器2此前运行该代码完全正常。

修复步骤

  • 清除curl本地缓存
    执行以下命令清空curl的缓存文件,避免旧缓存干扰:

    library(curl)
    curl_clear_cache()
    

    完成后重新运行目标代码测试。

  • 强制禁用请求压缩
    绕开解压缩环节,直接请求未压缩的内容:

    library(quantmod)
    options(getSymbols.yahoo.warning = FALSE)
    getSymbols("VTI", src = "yahoo", curl.options = list(httpheader = c(`Accept-Encoding` = "identity")))
    
  • 重装依赖库至最新版本
    卸载并重新安装curl、quantmod及其依赖包,修复可能的版本兼容或文件损坏问题:

    remove.packages(c("curl", "quantmod", "xts", "zoo"))
    install.packages(c("curl", "quantmod"), dependencies = TRUE)
    

    安装完成后务必重启RStudio再测试。

  • 排查系统级解压缩组件
    这类错误可能和Windows系统的zlib或VC++组件异常有关:

    • 打开Windows设置-更新和安全-Windows更新,安装所有待更系统补丁
    • 下载并安装最新版的Microsoft Visual C++可再发行组件包
  • 重置R用户配置
    若用户配置文件存在异常,可尝试重置:

    1. 关闭RStudio
    2. 定位到C:\Users\[你的用户名]\Documents\.R文件夹,重命名为.R_old
    3. 重新启动RStudio,系统会生成全新的配置文件,再安装quantmod测试

内容的提问来源于stack exchange,提问作者John Dishman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:55:01