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

如何解决R爬取ASP.NET网站返回原始向量中嵌入NUL字符的问题

问题原因

你遇到的报错并非文件损坏导致,返回的reporte_nacido原始内容实际是带BOM的UTF-16LE编码文本:该编码下每个字符占2个字节,ASCII字符的第二个字节固定为0x00(也就是报错里提到的NUL字符),直接调用rawToChar就会触发嵌入NUL的校验错误。

推荐解决方法(无需手动删除字符,避免乱码)

直接通过编码转换处理原始向量,会自动适配双字节结构、过滤BOM:

# 合并为单个raw向量
raw_vec <- as.vector(unlist(reporte_nacido))
# 从UTF-16LE编码转换为UTF-8文本
content_str <- iconv(list(raw_vec), from = "UTF-16LE", to = "UTF-8")

转换完成后可以直接读取制表符分隔的CSV内容:

# 读取为数据框
df <- read.delim(text = content_str, sep = "\t")

备选方案:手动删除NUL字符(仅适合临时快速处理)

如果不需要考虑特殊字符的编码正确性,可以直接过滤掉原始向量里的NUL字节再转换:

raw_vec <- as.vector(unlist(reporte_nacido))
# 过滤所有值为0的原始字节
filtered_vec <- raw_vec[raw_vec != as.raw(0)]
content_str <- rawToChar(filtered_vec)

内容的提问来源于stack exchange,提问作者Andres Mora

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:54:01