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

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

文章目录

问题

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

解释

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

# coding=gbk

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

javac -encoding utf-8 Test.java

原因

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

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

第二步中,python解释器会先读取前两行文件内容(读到二进制的换行符号(0x0A或0x0D0A或单独的0x0D)就是一行),然后用默认的编码方式1对其进行解码,之后会用正则表达式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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100247.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 遗传算法matlab程序简单实例_遗传算法的matlab实现

    遗传算法matlab程序简单实例_遗传算法的matlab实现遗传算法程序(一):  说明:fga.m为遗传算法的主程序;采用二进制Gray编码,采用基于轮盘赌法的非线性排名选择,均匀交叉,变异操作,而且还引入了倒位操作!function[BestPop,Trace]=fga(FUN,LB,UB,eranum,popsize,pCross,pMutation,pInversion,options)%[BestPop,Trace]=…

  • 基于麦克风阵列的声源定位_python播放声音模块

    基于麦克风阵列的声源定位_python播放声音模块上一篇文章说到odas_web界面非常难安装,并且运行也很卡。所以我自己用python写了一个界面程序,用来接收odas处理完的结果。这个界面程序与odas之间是通过socket连接的,界面作为服务器,odas作为客户端,由于有两路数据,所以各有两个服务器和客户端。但是实际绘制在界面上的是SSL的结果,不是SST的结果。其实我也试过SST的结果,从直观的感受而言,效果会比SSL差一些,实时性不是很高,我的理解SST的好处是可以跟踪音源是否有活动。

  • Redis版本5.0.5安装

    这篇文章主要讲解Redis安装,以后的文章我会对Redis做一个详细介绍,已经Redis应用。1.解压压缩包tar-zxvfredis-5.05.tar.gz2.安装gccyuminstallgcc检查gcc安装是否成功rpm-qa|grepgcc3.进入文件夹make安装cdredis-5.0.5makeMALLOC=libc4.后台运行redissrc/redis-server&检查redis服务启动情况..

  • 排序算法:快速排序

    排序算法:快速排序概述手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官眼前一亮。本文将介绍常见的排序算法中的“快速排序”。基本思想快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:从要排序的数据中取一个数为“基准数”。 通过一趟排序将要排序的数据…

  • maven的资源过滤filters[通俗易懂]

    maven的资源过滤filters[通俗易懂]maven的资源过滤maven的过滤资源需要结合maven的2个定义才能实现,分别是:profile resources下面分开来做介绍。profileprofile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。需要掌握profile的定义以及…

  • 网络通信常见加密剖析[通俗易懂]

    网络通信常见加密剖析[通俗易懂]系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号