当前位置: 首页 > news >正文

UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x99

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x99 这个错误通常发生在你尝试使用 GBK 编码来解码一个包含非GBK编码字符的文件时。GBK 是一种用于简体中文的字符编码方式,它不支持所有可能的 Unicode 字符。

解决方法
明确文件的正确编码:首先,你需要确认你的文件实际使用的编码格式。如果你的文件是用 UTF-8 或其他 Unicode 编码方式(如 UTF-16, UTF-32)编写的,那么使用 GBK 解码就会导致这个错误。

使用正确的编码方式读取文件:在 Python 中,你可以在打开文件时指定正确的编码。例如,如果你知道文件是 UTF-8 编码的,你应该这样打开文件:

with open('filename.txt', 'r', encoding='utf-8') as f:content = f.read()

自动检测编码:如果你不确定文件的编码,可以使用库如 chardet 来检测文件的编码。首先,你需要安装 chardet:

pip install chardet

然后,你可以使用以下代码来检测并读取文件:

import chardetwith open('filename.txt', 'rb') as f:  # 以二进制模式读取原始字节raw_data = f.read()result = chardet.detect(raw_data)encoding = result['encoding']with open('filename.txt', 'r', encoding=encoding) as f:content = f.read()

处理可能的乱码:即使你使用了正确的编码,有时文件中的某些字符仍然可能无法正确显示(尤其是当文件是从一种语言环境导出到另一种语言环境时)。在这种情况下,你可以考虑忽略或替换这些字符:

with open('filename.txt', 'r', encoding='utf-8', errors='ignore') as f:content = f.read()

或者:

with open('filename.txt', 'r', encoding='utf-8', errors='replace') as f:content = f.read()

通过上述方法,你应该能够解决 UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x99 的错误,并正确地读取你的文件内容。

http://www.lryc.cn/news/536072.html

相关文章:

  • DeepSeek应用——与word的配套使用
  • 递归乘法算法
  • 【免费】2004-2020年各省废气中废气中二氧化硫排放量数据
  • CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测
  • 【油猴脚本/Tampermonkey】DeepSeek 服务器繁忙无限重试(20250213优化)
  • 单调栈及相关题解
  • 每日温度问题:如何高效解决?
  • #渗透测试#批量漏洞挖掘#致远互联AnalyticsCloud 分析云 任意文件读取
  • 统计安卓帧率和内存
  • 大数据学习之PB级百战出行网约车二
  • C语言第18节:自定义类型——联合和枚举
  • C++病毒(^_^|)(2)
  • 在vscode中拉取gitee里的项目并运行
  • centos7 防火墙开放指定端口
  • Day42(补)【AI思考】-编译过程中语法分析及递归子程序分析法的系统性解析
  • AI成为基础设施有哪些研究方向:模型的性能、可解释性,算法偏见
  • 写一个鼠标拖尾特效
  • Redisson介绍和入门使用
  • OpenAI推出全新AI助手“Operator”:让人工智能帮你做事的新时代!
  • Python----PyQt开发(PyQt基础,环境搭建,Pycharm中PyQttools工具配置,第一个PyQt程序)
  • 算法笔记 02 —— 入门模拟
  • PyTorch 源码学习:从 Tensor 到 Storage
  • uniapp 使用 鸿蒙开源字体
  • LabVIEW多电机CANopen同步
  • 每日定投40刀BTC(2)20250209 - 20250212
  • 【LeetCode Hot100 子串】和为 k 的子数组、滑动窗口最大值、最小覆盖子串
  • 某虚拟页式存储管理系统中有一个程序占8个页面,运行时访问页面的顺序是1,2,3,4,5,3,4,1,6,7,8,7,8,5。假设刚开始内存没有预装入任何页面。
  • 傅里叶公式推导(三)
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_update函数
  • 老牌系统工具箱,现在还能打!