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 ...
随机推荐
- 【HDOJ6616】Divide the Stones(构造)
题意:给定n堆石子,第i堆的个数为i,要求构造出一种方案将其分成k堆,使得这k堆每堆数量之和相等且堆数相等 保证k是n的一个约数 n<=1e5 思路:先把非法的情况判掉 n/k为偶数的方法及其简 ...
- sqlserver连接-2
本地连接 方法1. 方法2. 远程连接 如果无法通过IP地址远程连接你的SQL Server 2008服务器,可以参考下面的内容进行设置. 在进行下述设置之前,应该确保你的网络已经安装设置完毕,服务器 ...
- (转)Hyper-v 安装CentOS 7 (其他虚拟机一样参考)
转:https://www.cnblogs.com/dunitian/p/4976077.html 平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunit ...
- SHADER 用 step替代 if-else
今天聊起这个问题,百度发现了这个优化方式: https://blog.csdn.net/liu_if_else/article/details/77455639
- undo管理
undo segments的extents 的状态共有四种,free ,active , inacitve, expired SQL> select SEGMENT_NAME,TABLESPA ...
- jmeter之关联的使用(正则、json)
部分接口的测试中,一个接口会依赖上一个接口的响应信息,但上一个接口的响应信息又不是固定不变的,这时候,需要提取上一个接口的响应信息,将二者每一次的信息关联起来 目录 1.应用场景 2.jmeter正则 ...
- 第 2 章 前端基础之CSS
一.CSS语法 CSS规则由两个主要的部分构成:选择器,以及一条或多条声明. ''' selector { property: value; property: value; ... property ...
- [Linux] 027 RPM 包与 源码包的区别
1. 区别 安装之前的区别: 概念上的区别 安装之后的区别: 安装位置不同 2. RPM 包安装位置 安装在默认位置中 RPM 包默认安装路径 明细 /ect 配置文件安装目录 /usr/bin/ 可 ...
- 【题解】Sigitseeing Tour
题目大意 有一张$n$个结点,$m$条混合边的图($1 \leq n \leq 200$,$1 \leq m \leq 1000$),求这张图是否存在欧拉回路. 题解 因为有混合边,所以我们要先给无向 ...
- tomcat内存使用情况
预发布阿里云服务器的容器 tomcat会自己无缘无故重启,故引出一些查看tomcat内存使用情况观察的细枝末节: 1️⃣当前端口号进程信息和GC使用情况(1)显示端口的PID:lsof -i:端口示例 ...