文章目录

  • 问题
  • 解释
    • 原因

问题

这句出错的含义是使用utf-8格式无法对你写的代码进行解码,也就无法编译了。
解决方法是告诉编译器使用其他可以用的解码方式来正确解码
怎么告诉它?

解释

好比是这样的,你写了一个uft-8格式的代码,然后计算机用二进制读取到了内存中,python解释器用utf-8格式对这些二进制文件重新解释和编码来执行,但是如果python解释器错误的使用了其他解码格式比如gbk等等,字节按照不同格式读取的结果是不同的,一些代码就会解码错误,python解释器就会懵逼报错

在代码第一行添加一个解码方式注释就好了
只能是第一行,前面可以有注释不能有代码,
因为指定了,解码器就使用指定解码方法;不算注释,如果第一行不指定解码方法解码器就会使用默认方法解码代码,写在代码后面它不承认
解码器解码的时候如果看到了这行注释就会使用注释的编码方式解码,没看到就使用默认方式

# coding=gbk

不仅是gbk,还可以是其他的如iso等等解码方式
java也会出现这种解码方式错误的问题
解决方法是

javac -encoding utf-8 Test.java

原因

那么为什么会发生这种情况呢?
首先理解python执行代码的三个过程

  1. 用二进制读取代码文件进内存
  2. 将内存中的二进制文件解码为python代码
  3. 执行得到的python代码
    问题出在第二步上,如果文件是gbk格式,你使用iso等方式解码就会解码错误,得不到正确代码,当然也无法执行第三步

第二步中,python解释器会先读取前两行文件内容(读到二进制的换行符号就是一行)((二进制中为0x0A或0x0D0A或单独的0x0D)),然后用默认的编码方式对其进行解码,之后会用正则表达式coding[:=]\s*([-\w.]+)进行匹配查找代码指定的解码方式,再用找到的正则表达式的第一个分组作为编码方式对源码文件的二进制内容进行解码,得到python语句,如果没有指定就用默认解码方式解码,那样就未必解码正确。

详细的解释看:
https://blog.csdn.net/xuejianbest/article/details/100660402?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=7b392762-5fdc-40fc-b0f4-895ea74b9e29&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

python-Non-UTF-8 code starting with ‘\xbd‘ in file C:/Users/Adminis.....出错相关推荐

  1. SyntaxError: Non-UTF-8 code starting with ‘\xbd‘ in file D:/code/CapsNet/word.py on line 6, but...

    关于pyCharm报错解决:SyntaxError: Non-UTF-8 code starting with '\xbd' in file D:/code/CapsNet/word.py on li ...

  2. 【Python】SyntaxError: Non-UTF-8 code starting with ‘\xe5‘ in file XXX.py on line XX 的解决方法

    问题描述 在写Python爬虫的时候遇到了这个问题: SyntaxError: Non-UTF-8 code starting with '\xe5' in file XXX.py on line X ...

  3. SyntaxError: Non-UTF-8 code starting with ‘\xbd‘ in file C:\pycharm...Pycharm编译时出现以上提示

    看到网上很多解决思路,基本都对,基本都是python教程上的差异,随着版本更新,可能不适用,为此增加一些 我学习的教程很喜欢用utf8编码方式,所以连接数据库的时候代码(包括内容和注释部分)中包含有汉 ...

  4. 开发报错记录解决(三):编译python出现“SyntaxError: Non-UTF-8 code starting with ‘\xcc‘ in file D”的统一解决办法

    根据编码的不同在python代码文件的第一行添加如下代码: #coding=utf-8 或者 # -!- coding: utf-8 -!- 即可完美解决!

  5. SyntaxError: Non-UTF-8 code starting with ‘\xbd‘

    遇到的问题 SyntaxError: Non-UTF-8 code starting with '\xbd' in file D:/py_project/pa_demo/pa_06.py on lin ...

  6. Non-UTF-8 code starting with ‘\xe8‘ in file解决方案

    Python中出现Non-UTF-8 code starting with '\xe8' in file 的问题 在程序的开头加上: # -*- coding:utf-8 -*-

  7. python打包软件后报错 :SyntaxError: Non-UTF-8 code starting with ‘\x90‘ in file 的原因及解决方法

    本篇文章主要讲解,python打包软件后报错 :SyntaxError: Non-UTF-8 code starting with '\x90' in file 的原因及解决方法 作者:任聪聪 报错说 ...

  8. python报错:SyntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file

    File "E:/project/python/learn/python/test.py", line 2 SyntaxError: Non-UTF-8 code starting ...

  9. Non-UTF-8 code starting with ‘\xb5‘ in file D:\eclipse\Python\test\__init__.

    python文件运行报 Non-UTF-8 错误 SyntaxError: Non-UTF-8 code starting with '\xb5' in file /Users/qianjiangan ...

最新文章

  1. 罗辑思维 - 当代的学习方法
  2. Ubuntu桌面版与服务器版的区别
  3. PHP获取MySQL执行sql语句的查询时间
  4. 基于 Netty 如何实现高性能的 HTTP Client 的连接池
  5. python作品_学习 Python 有些枯燥?那是你学错方法了,看这里
  6. 多个装饰器装饰一个函数
  7. 二、数据库设计与操作
  8. 【VMware vSAN 6.6】5.4.vSAN 配置提示:vSAN硬件服务器解决方案
  9. 扫地机器人石头爬坡_都这么强了,还要怎么升级:真实评测石头T6扫地机器人...
  10. 免费下载IEEE论文的网站
  11. python贪心算法几个经典例子_python 贪心算法的实现
  12. 最全最新cpu显卡天梯图_2019.12月CPU和显卡性能天梯图
  13. 商城前端模板_新零售时代如何玩转微信商城
  14. HDU 5857 Median(水~)
  15. Room 使用及初步分析
  16. acmer退役小作文
  17. DWARF调试格式的简介
  18. history of program atan2(y,x)和pow(x,y)
  19. 2019年的反弹牛市总结
  20. python学习第十二天

热门文章

  1. Python数据转换-有符号短整型转换无符号短整型
  2. 解决浏览器无法自动播放audio的问题
  3. 【Python】实现模拟股票交易的虚拟盘小工具(巴菲特模拟器)
  4. gdal--矢量求交
  5. 【企业了解】宁德时代
  6. 动态磁盘和基本磁盘的简要介绍
  7. 电脑开机时自动开启小键盘
  8. postgresql 学习笔记
  9. 【解决】Asset file ‘XXX/XXX/XXX.meta ’ has inconsistent casing. Renaming meta file succeeded.
  10. 培训讲师的自我修养——《手把手教你学Java》