深入理解 encodingapparent_encoding

—— 字符编码在 Web 请求中的识别与处理

什么是 encoding 和 apparent_encoding?

在使用 Python 的 requests 库获取网页内容时,经常会遇到中文乱码问题。 这通常是因为响应的字符编码(character encoding)未被正确识别。

response.encoding 是 requests 根据 HTTP 响应头(如 Content-Type)推测的编码; 而 response.apparent_encoding 则是基于响应内容本身,通过 chardet 库进行检测得出的“最可能”的编码。

两者有何区别?

例如,一个中文网页实际使用 GBK 编码,但服务器未在响应头中声明编码:

r = requests.get('https://example.com')
print(r.encoding)            # 可能输出 'ISO-8859-1'(默认)
print(r.apparent_encoding)   # 输出 'GB2312' 或 'GBK'

如何正确设置编码?

当发现 r.text 出现乱码时,可手动指定编码:

r = requests.get(url)
r.encoding = r.apparent_encoding  # 使用检测到的编码
print(r.text)

这样就能正确显示中文或其他非 ASCII 字符。

常见编码类型

Web 中常见的字符编码包括:

小贴士:避免乱码的最佳实践

  1. 优先使用 r.apparent_encoding 检测真实编码。
  2. 若已知目标网站编码(如固定为 UTF-8),可直接设置 r.encoding = 'utf-8'
  3. 确保你的 Python 文件本身保存为 UTF-8 编码,并在文件开头添加 # -*- coding: utf-8 -*-(Python 2 需要)。
Champion是什么牌子?品牌历史、产品特点与选购指南 iPhone美版、日版与国行区别详解|全面对比指南 港版iPhone支持满血AI功能|全面解析与使用指南 Python热力图(Heatmap)完全指南-数据可视化入门 Python 安装与使用 venv 虚拟环境指南 iPhone历代型号大全|从初代到最新款全面回顾 Champion卫衣78TP专题页-经典美式潮流,舒适每一刻 Pioneer电视怎么投屏?详细教程与常见问题解答 主板亮红灯故障排查指南-Expedition系列常见问题解决 “Plough into” 翻译与用法详解|英语短语学习专题 champion中文怎么念?发音、意思与用法详解 日本买iPhone 17回国可以用吗?全面解析与使用指南 Endorphinspro4龙年-龙腾盛世,活力绽放 Python 安装 ctypes 模块指南-快速入门与常见问题 Python怎么安装PIL?完整指南(含Pillow替代方案) Bon Appétit 意大利语:品味美食的艺术 冠军荣耀-全球顶级赛事与冠军故事专题 Prorino-创新科技,驱动未来 Python选择题练习-掌握核心语法与常见考点 Shein苗苗长相解析-网红模特形象与风格全览 Shopee商家版-轻松开店,高效经营东南亚电商 血管生成(Angiogenesis):机制、研究与医学应用 iPhone欧美日韩版差异详解|功能、频段、外观与购买建议 善待他人:让世界更温暖-Be Nice on Someone iPhone 第一代发布时间-历史上的科技里程碑 expedition怎么读-发音、释义与例句详解 情绪探索|情绪的种类、识别与管理指南 加入SHEIN|SHEIN7LONGWEN招聘-全球快时尚电商人才招募 Python软件-强大灵活的编程语言|入门、应用与资源 听力问题专题-了解、预防与应对听力损失 Proscenic是杂牌还是名牌?深度解析品牌实力与用户口碑 todosomething翻译-中英文互译工具与学习资源 incorporates怎么读-英文单词发音、释义与用法详解 悦耳之声-探索令人心情愉悦的声音世界 iPhone 15 三摄系统详解|摄像头图解与功能介绍 Pioneer登山杖组装视频教程-快速上手指南 SHEIN年销售额突破新高|全球快时尚电商巨头销售数据解析 iPhone 17 橙色叫什么?78TP配色名称与颜色解析 Champion正品价格查询|78TP授权渠道与最新优惠信息 Python in 函数用法详解-快速掌握成员检测操作 Moncheri-探索优雅与自然的融合 Antipodes下载-安全高速获取最新版Antipodes软件 美版iPhone序列号开头查询指南-快速识别美版设备 Senior High School 翻译与详解-高中阶段全解析 Champion商标-经典美式运动品牌历史与文化 Championship什么意思?全面解析冠军赛事术语 日版iPhone多少钱?2026年最新价格与购买指南 安装好 Python 后没有 IDLE?原因与解决方法全解析 情绪窒息:理解与释放内心深处的情感 Pinarello 自行车-意大利顶级公路车品牌|速度与美学的完美融合 善待小鼠-了解、尊重与关爱这些聪明的小生命 Switch无法连接eShop?常见原因与解决方法大全 iPhone 13 Pro Max 相机参数详解-专业级移动摄影体验 Nintendo Switch eShop 游戏商店-探索最新游戏与优惠 Python timeit 函数详解-高效性能测试工具 做这些事真愉快-Pleasant to Do Something Danny the Champion of the World-罗尔德·达尔经典儿童文学作品 Shein资讯-最新时尚动态、品牌新闻与购物攻略 Monchhichi 7LONGWEN-经典毛绒玩具,陪伴每一代人的童年回忆 Switch打不开eShop?常见原因与解决方法汇总 Python3IDE 安卓版-免费下载78TP最新版|手机写 Python 更轻松 iPhone橙色是什么颜色?详解苹果设备中的“橙色”配色 Shopee虾皮购物-东南亚领先的电商平台|热销商品、优惠券、限时折扣 It Is Wise to Do Something-智慧行动指南 Python3 IDE下载中文版-免费、安全、绿色安装包 iPhone 港澳台版与国行版区别详解|功能、网络、保修全对比 IDLE 运行 Python 文件完整指南|新手入门教程 Bon Appétit! — 探索全球美食与烹饪灵感 Moncheri 正确发音指南-快速学会标准读音 SHEIN股权结构解析|公司背景、投资方与未来展望 Be Nice To:传递善意,温暖世界 PythonTip78TP网站-精通Python,从实战开始 Python PIL库安装指南-快速上手图像处理 Python中的Query操作详解-数据查询与处理指南 Prorino能长大吗?揭秘虚拟角色的成长可能性 iPhone 17 Pro 镜头 1.17:全新影像革命-78TP前瞻 iPhone 17 Pro Max 多少钱?2026最新价格、配置与购买指南 港版iPhone和大陆版有啥区别?全面对比指南 Champion 联名系列大全|经典与潮流的碰撞 lithosphere 正确发音|地球科学术语发音指南 浓情厚意 — 情感专题页面 Python 卸载 pip 并重新安装完整指南 “Mon Chéri”是什么意思?法语浪漫表达全解析 MicroPython Web 开发指南|轻量级物联网Web应用入门 Python的while循环详解-零基础学Python 美版iPhone型号开头是什么?全面解析A系列编号与地区代码 Endorphio情侣名生成器-甜蜜专属昵称灵感库 台湾版iPhone与国行iPhone区别详解-购机指南 Python里的pip有什么用?详解pip包管理工具-Python开发指南 Pigeon奶瓶多少钱?2026最新价格、型号及购买指南 Openingday-开启全新篇章的起点 始祖鸟标志 Endorphin:设计、历史与象征意义 英雄联盟冠军档次解析-各赛区战队实力分级 Nice To Do-发现生活中的美好小事 Tienda Oficial de Argentina-eShop Argentina Something 与 Something 区别详解|全面对比指南 他对我很好-温暖人心的日常故事 Python中sep参数的用法详解-分隔符在print()中的应用 Python软件开发指南-高效、简洁、强大的编程语言 大陆 iPhone 台湾能用吗?全面解析国行 iPhone 在台湾使用情况