Python学习笔记:BOM

本文介绍了BOM在UTF-8编码中的作用,特别是在Windows系统下导致的Python解析JSON时可能遇到的问题。通过引用维基百科资料,解释了BOM用于标识字节顺序和文本流的Unicode编码。尽管BOM对于UTF-16和UTF-32编码较为重要,但在UTF-8中并不必要。文章提供了两种去除UTF-8文件BOM的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

windows对于utf-8编码的文件自带BOM,但是其他系统utf-8编码默认不带BOM,就造成在某些情况下字符解码会出现问题,比如python自带的json在读取在window下编码得来的utf-8文件时,会报如下错误:

ValueError: No JSON object could be decoded

BOM

From Wikipedia, the free encyclopedia

BOM:The byte order mark (BOM) is a Unicode character, U+FEFF BYTE ORDER MARK (BOM), whose appearance as a magic number at the start of a text stream can signal several things to a program consuming the text:

  • What byte order, or endianness, the text stream is stored in;
  • The fact that the text stream is Unicode, to a high level of confidence;
  • Which of several Unicode encodings that text stream is encoded as.

BOM use is optional, and, if used, should appear at the start of the text stream.

Unicode can be encoded as 8-bit, 16-bit, or 32-bit integers. For the 16- and 32-bit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值