通常python3里面如果有中文,在不连接其他设备和程序的情况下,报错信息大致如下:

SyntaxError: Non-UTF-8 code starting with '\xd6' in file

这里面的\xd6可以是其他编码,代表的是你程序里第一个中文的前两位编码

原因:你的程序里变量的编码方式和解释器解析的编码方式不一致,而从解释器的报错信息可以看出,解释器的编码是utf-8

解决方法:使程序里变量的编码方式和解释器解析的编码方式保持一致

那么问题来了,两个编码方式为什么不一样呢,网上非常流行的解释:有中文就要加#coding:gbk,因为中文需要gbk来编码;这个解释是错的,因为utf-8也可以对中文编码所以问题在于我们程序里的变量编码方式不是utf-8

我们pycharm中变量的编码方式设定路径:file-settings-editor-file encodings-project encoding(默认被选成了GBK,原因我也不知道)

解决方法一:如果我们把项目的编码方式设定为utf-8,那么变量的编码方式就是utf-8 ,python的默认编码方式也是utf-8,那就可以正常输出中文什么其他代码都不用加

s="中文"
print(s)

输出

中文

解决方法二:在代码上方加一行#coding:gbk;这就是在告诉编译器,我变量的编码方式是GBK,你要用GBK来解码,同样也可以解决问题

#coding:gbk
s="中文"
print(s)

输出

中文

问题解决了,但是要注意:如果用第一种方式解决问题,那你的py文件是utf-8编码,如果用第二种方式解决问题,那么你的py文件是gbk编码

这个在写文件的时候,不会对写入值有影响,写入值受f=open(path,mode,encoding)里面的encoding控制,要尤其注意

注:python2的报错与python3有些区别,python2默认的编解码方式是ASCII,所以如果有中文就要在文件头加上#coding:utf-8

python3输出中文报错的原因,及解决办法(基于pycharm)的更多相关文章

  1. node-sass 安装失败报错的原因及解决办法(整理)

    npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之 ...

  2. Python 中文报错 SyntaxError: Non-ASCII character解决办法

    只需要在最顶部的位置加上 #-*- coding:utf-8 -*- 就行了. 如果还是没有好,打开设置并搜索file encoding并作如图修改便好.

  3. Django admin中文报错Incorrect string value 解决办法

  4. 服务端返回的json数据,导致前端报错的原因及解决方法

    前言 最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串 导致报错的原因 后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套 1)\n 2) \r 3) ...

  5. ionic build android 中的报错详细原因以及解决方法

    一.执行打包命令 ionic build android 1.报错: 原因: 其实也并非报错,但是会一直在下载gradle,由于网络或者其他原因,导致下载比较慢, 解决方案: 手动下载gradle,并 ...

  6. [Python]输出中文报错的解决方法

    问题现象:在PyCharm工具编辑python语句输出中文时,程序报错. 解决方法(2种): 1.在代码开头加#coding=utf-8(注意要加#) 2.还是在代码开头加#-*- coding: u ...

  7. eclipse里index.jsp头部报错的原因和解决方法

    index.jsp的头<%@这句报错的话,是因为没有引入Tomcat的原因.解决:A:Window---Preferences---server---RuntimeEnviroments--Ad ...

  8. 安装swoole出现make报错的原因与解决方法

    安装swoole报错,错误信息如下: 报错原因 报错很明显,找不到 openssl/ssl.h ,首先要确认电脑上有没有安装 openssl Mac安装openssl 既然它找不到,那么就需要手动的指 ...

  9. Django独有报错的原因和解决

    RuntimeError at /login You called this URL via POST, but the URL doesn't end in a slash and you have ...

随机推荐

  1. 状压DP常用操作

    1. 判断一个数字x二进制下第i位是不是等于1. 方法:if ( ( ( 1 << ( i - 1 ) ) & x ) > 0) 将1左移i-1位,相当于制造了一个只有第i位 ...

  2. celery的入门使用

    一.安装步骤 二.使用方法 三.和Django结合 四.部署和监控

  3. java 为啥可打印date

    打印一个对象的时候,会打印出它的toString方法的返回值,Date重写了toString方法.

  4. spring4.1.8扩展实战之七:控制bean(BeanPostProcessor接口)

    本章是<spring4.1.8扩展实战>的第七篇,我们来尝试在容器初始化的时候对bean实例做设置: 原文地址:https://blog.csdn.net/boling_cavalry/a ...

  5. Linux实用技巧--隧道

    平时开发过程中,可能会遇到一些网络问题,比如npm install 一些依赖包.本地电脑是可以,没有问题.但是测试环境服务器,由于公司内部网络安全限制,不可以随意访问外部网络.因此下载一个依赖包就变得 ...

  6. Jenkins使用一:CentOS7安装Jenkins

    安装jdk环境: yum search jdk 装 1.8版本的:yum install -y java-1.8.0-openjdk 安装Jenkins wget -O /etc/yum.repos. ...

  7. 接口自动化之cookies登录

    现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录 目录 1.requests的添加cookies的方法 2.举个栗子 1.requests的添加cookies的方法 request ...

  8. upc组队赛16 Winner Winner【位运算】

    Winner Winner 题目链接 题目描述 The FZU Code Carnival is a programming competetion hosted by the ACM-ICPC Tr ...

  9. 使用HEXO建站

    使用Hexo模板 按以下指导进行本地预览和上传到你的github. 环境安装 安装node.js node.js官方下载地址https://nodejs.org/en/ 设置npm淘宝镜像站(npm默 ...

  10. SQL Server 分页语句查询

    --查询第10页的数据(15条) SELECT TEMP1.* FROM( SELECT TOP 15 ROW_NUMBER() OVER(ORDER BY ID ASC) AS ROWID,* FR ...