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

使用Langchain TextLoader读取文件遇编码错误,如何解决?

解决TextLoader读取文件的Unicode解码错误

直接解决方案:指定UTF-8编码加载文件

你的判断正确,给TextLoader显式指定encoding='utf-8'参数即可解决该问题,修改后的完整代码如下:

from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.document_loaders import TextLoader

# 加载文件时指定UTF-8编码
loader = TextLoader("elon_musk.txt", encoding='utf-8')
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

# 后续创建向量库的完整流程示例
embeddings = OpenAIEmbeddings()
vector_store = FAISS.from_documents(docs, embeddings)

备选处理方案(若UTF-8仍报错)

如果指定utf-8后仍无法解码,可能文件是带BOM的UTF-8编码,可尝试:

loader = TextLoader("elon_musk.txt", encoding='utf-8-sig')

若临时允许丢失少量特殊字符(不推荐),可添加错误忽略参数:

loader = TextLoader("elon_musk.txt", encoding='utf-8', errors='ignore')

错误原因说明

报错中的'charmap' codec can't decode byte是因为Windows环境下TextLoader默认使用系统编码(如cp1252),而你的文件包含该编码无法识别的特殊字符。显式指定UTF-8编码,即可匹配文件实际编码格式,完成正常读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:53:08