python3输出中文报错的原因,及解决办法(基于pycharm)
通常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)的更多相关文章
- node-sass 安装失败报错的原因及解决办法(整理)
npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之 ...
- Python 中文报错 SyntaxError: Non-ASCII character解决办法
只需要在最顶部的位置加上 #-*- coding:utf-8 -*- 就行了. 如果还是没有好,打开设置并搜索file encoding并作如图修改便好.
- Django admin中文报错Incorrect string value 解决办法
- 服务端返回的json数据,导致前端报错的原因及解决方法
前言 最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串 导致报错的原因 后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套 1)\n 2) \r 3) ...
- ionic build android 中的报错详细原因以及解决方法
一.执行打包命令 ionic build android 1.报错: 原因: 其实也并非报错,但是会一直在下载gradle,由于网络或者其他原因,导致下载比较慢, 解决方案: 手动下载gradle,并 ...
- [Python]输出中文报错的解决方法
问题现象:在PyCharm工具编辑python语句输出中文时,程序报错. 解决方法(2种): 1.在代码开头加#coding=utf-8(注意要加#) 2.还是在代码开头加#-*- coding: u ...
- eclipse里index.jsp头部报错的原因和解决方法
index.jsp的头<%@这句报错的话,是因为没有引入Tomcat的原因.解决:A:Window---Preferences---server---RuntimeEnviroments--Ad ...
- 安装swoole出现make报错的原因与解决方法
安装swoole报错,错误信息如下: 报错原因 报错很明显,找不到 openssl/ssl.h ,首先要确认电脑上有没有安装 openssl Mac安装openssl 既然它找不到,那么就需要手动的指 ...
- Django独有报错的原因和解决
RuntimeError at /login You called this URL via POST, but the URL doesn't end in a slash and you have ...
随机推荐
- ssd_mobilenet_demo
操作系统:windows 10 64位 内存:8G GPU:Nvidia MX 150 Tensorflow: 1.4 1.安装python Anaconda3-5.0.1 ,默认python版本( ...
- C# windows窗口应用程序切换主界面的显示内容
不知道说清楚没有?就是我的窗口分为两部分,左边,控制部分,由一些按钮组成右边,显示部分,由些控件(如下拉,文本等等组成) 左边的每个按钮对应显示部分的页面,也就是说,左边换一个按钮点,那么右边就显示其 ...
- sqlserver常用命令-4
原文: https://www.cnblogs.com/yunspider/p/7719714.html 常用命令 #查看数据库所有表的行数 SELECT A.NAME ,B.ROWS FROM sy ...
- java并发编程如何预防死锁
在java并发编程领域已经有技术大咖总结出了发生死锁的条件,只有四个条件都发生时才会出现死锁: 1.互斥,共享资源X和Y只能被一个线程占用 2.占有且等待,线程T1已经取得共享资源X,在等待共享资源Y ...
- centos7 安装gdal2.3.1
在直接源码安装gdal2.3时报错,大概意思是说没有安装SFCGAL. 1.centos更新cmake到3.5版本: wget https://cmake.org/files/v3.5/cmake-3 ...
- RabbitMq(7)消息延时推送
应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持 ...
- php登陆ssh执行命令
<?php $connection=ssh2_connect('172.16.10.3',22);ssh2_auth_password($connection,$user,$pass);$cmd ...
- Altium Designer chapter6总结
绘制PCB中需要注意的如下: (1)网络表的载入:网络表是原理图与PCB之间的桥梁,而AD实现了真正的双向同步设计.在装入网表之前需要先添加相应的封装库. (2)元件的布局:一般采用手工布局:按照模块 ...
- Gradient Vanishing Problem in Deep Learning
在所有依靠Gradient Descent和Backpropagation算法来学习的Neural Network中,普遍都会存在Gradient Vanishing Problem.Backprop ...
- APT攻防整理-常用CVE
常用CVE CVE-- 受影响版本 Windows /Windows /Windows Server /Windows Server R2/Windows Server /Windows Server ...