windows下用notepad++写一python脚本 test.py,编码方式为utf8:

f=open("test.py")

line=f.readline()

while line:

print (line,)

line=f.readline()

f.close()

1

2

3

4

5

6

f=open("test.py")

line=f.readline()

whileline:

print(line,)

line=f.readline()

f.close()

执行python test.py出错:

$ python test.py

Traceback (most recent call last):

File "test.py", line 7, in

print (line)

UnicodeEncodeError: 'gbk' codec can't encode character '\ufeff' in position 0: illegal multibyte sequence

1

2

3

4

5

$pythontest.py

Traceback(mostrecentcalllast):

File"test.py",line7,in

print(line)

UnicodeEncodeError:'gbk'codeccan't encode character '\ufeff'inposition0:illegalmultibytesequence

原因是编码方式为带bom的UTF8,改成无bom就好了。

关于bom:

UTF- 8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开 头的FFFE了。这是个标识UTF-8编码文件的好办法,软件通过BOM来识别这个文件是否是UTF-8编码,很多软件还要求读入的文件必须带BOM。可 是,还是有很多软件不能识别BOM。

上面的报错中的 '\ufeff' 正是 带bom的文件开头的 FFFE。

另,改了之后如果文件中有中文一样会报错,这时需要指定以何种编码读取文件:

f=open("test.py",encoding=("utf8"))

1

f=open("test.py",encoding=("utf8"))

Netbeans的报错比较明确:

File ””, line None SyntaxError: Non-ASCII character in file 'D:\NetBeansProjects\NewPythonProject\src\newpythonproject.py', but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

参考:http://afericazebra.blog.163.com/blog/static/30050408201211199298711/

博客能带货吗

mysql utf8 bom_UTF8的BOM相关推荐

  1. mysql去bom头_使用editplus等编程工具时UTF-8编码去掉BOM头方法

    Unicode规范中有一个BOM的概念.BOM--Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WIDTH NO-B ...

  2. 总结:被MySQL UTF8编码坑的惨痛教训...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑 ...

  3. Mysql UTF8 varchar与Oracle ZHS16GBK varchar2同长度下存汉字的差异

    目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 3 5.1 验证实验... 3 5.2 问题分析... 5 6 延展.. ...

  4. Mysql 批量更改数据表和字段的字符集(Mysql UTF-8字符集更改为utf8mb4字符集)

    相关内容: Mysql utf8 和utf8mb4 的区别 记一次Mysql查询字段为空串在java中使用equals不相等的问题 由于Mysql的utf8是有缺陷的,不是真正的UTF-8,utf8m ...

  5. Mysql utf8 和utf8mb4 的区别

    相关内容: 记一次Mysql查询字段为空串在java中使用equals不相等的问题 Mysql 批量更改数据表和字段的字符集(Mysql UTF-8字符集更改为utf8mb4字符集) 前言 我们新建m ...

  6. QT与VS环境下代码文件编码格式使用utf-8与带BOM的utf-8的差异

    QT与VS环境下代码文件编码格式使用utf-8与带BOM的utf-8的差异 使用QT进行开发的时候,有时候通常会遇到使用中文的时候,就算格式为utf-8,也会出现编译错误的问题,一般无从下手,这几天看 ...

  7. utf-8与带有BOM的utf-8的区别

    最近在学习处理的过程中,遇到了需要txt转换为csv文件的需求,第一步当然是另存txt为utf-8的格式,但是博主在保存时,发现了utf-8有两种格式,如下图: 怀着求知欲,我查找了一下两者的区别,现 ...

  8. CSV乱码 - UTF-8 Unicode (with BOM)

    Unicode 统一码,也叫万国码.单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字 ...

  9. mysql utf8转化utf8mb4

    mysql utf8转化utf8mb4 (字符集转化,批量更改为utf8mb4) SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' CONVERT TO CHARAC ...

  10. UTF8文件带BOM引起的问题——iOS端竟然加载出了html代码

    起因是公司iOS端竟然加载出来了HTML代码,百思不得其解,查文献,原来如此... UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM. 所以不含 BOM 的 U ...

最新文章

  1. SQL Server 2008 数据库同步的两种方式 (发布、订阅)
  2. 如何防止机器模拟请求
  3. mybatis集成JNDI【注部署项目后测试代码在jsp或servlet中】
  4. 解决toolbar左边空出一部分的问题
  5. 45请求转发和请求重定向区别
  6. 争分夺秒!一大批高校正在加紧扩建......
  7. 一种特殊的多语言解决方案
  8. dicards qualifiers
  9. 电脑老是显示无网络连接到服务器,电脑怎么老弹出无法与服务器建立连接
  10. python中rgb颜色_Python 转换RGB颜色值的示例代码
  11. 汇编总结(3)——程序设计初步
  12. 网络安全 Kali虚拟机的安装和简单使用
  13. spark源码解读3之RDD中top源码解读
  14. 这游戏如此吊,它的玩家知道吗-Android游戏《头脑风暴》
  15. CodeForces 546-B (基础数学题签到)
  16. 厉害了!九州云边缘计算管理平台获国家权威认证
  17. Python之字典与集合的基本操作
  18. 2022-2028全球外墙建筑保温材料市场现状及未来发展趋势
  19. 2020最新短链接(防洪‘红’缩短网址)即视源码
  20. 【图论】电气工程师 ceoi

热门文章

  1. matlab 函数教程,MATLAB函数 - Matlab教程
  2. Python实现端口扫描
  3. 手机离线地图地图数据包教程
  4. Android平板软件推荐,Android平板电脑必备软件推荐
  5. silverlight4 开发必备
  6. mysql封包拦截修改工具_web封包拦截修改工具
  7. 【AI志愿超强攻略】中国高校人工智能专业最全院校排名课程对比
  8. 高数下(同济大学版本)期中冲刺式复习
  9. 基于UKey数字证书实现身份认证
  10. 怎样备份计算机里的驱动程序,怎么备份电脑的驱动 驱动人生备份驱动方法