首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(BOM)作为python常量?

(BOM)作为python常量?
EN

Stack Overflow用户
提问于 2015-10-03 11:56:27
回答 2查看 695关注 0票数 2

在实践中,这不是一个真正的问题,因为我可以只编写BOM = "\uFEFF";但是,我不得不为这样一个基本的东西硬编码一个神奇的常量,这让我很苦恼。编辑:和它容易出错!我在这个问题中不小心把BOM写成了\uFFFE,没有人注意到。它甚至导致了一个不正确的拟议解决方案。python肯定在某个地方以一种方便的形式定义了它?

搜索在codecs模块中找到了一系列常量:codecs.BOMcodecs.BOM_UTF8等等。但这些是bytes对象,而不是字符串。真正的BOM在哪里?

这是针对python 3的,但是我会对Python 2的完整性感兴趣。

EN

回答 2

Stack Overflow用户

发布于 2015-10-03 12:51:34

根本就没有。bytes常量在codecs中是您应该使用的。

这是因为您永远不应该在解码的文本中看到BOM (也就是说,您不应该遇到实际编码代码点U+FEFF的字符串)。相反,BOM在流开始时以字节模式存在,当您用BOM解码某些bytes时,输出string中不包含U+FEFF。类似地,编码过程应该处理向输出bytes添加任何必要的BOM --它不应该在输入string中。

BOM唯一重要的时间是在转换为bytes或从BOM转换时。

票数 1
EN

Stack Overflow用户

发布于 2015-10-03 16:42:31

我想你可以:

代码语言:javascript
复制
unicodedata.lookup('ZERO WIDTH NO-BREAK SPACE')

但它不像你已经拥有的那么干净

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32922265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档