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 ...
随机推荐
- 计算一段日期内的周末天数的php代码(星期六,星期日总和)
代码如下: /*| Author: Yang Yu <niceses@gmail.com>| @param char|int $start_date 一个有效的日期格式,例如:200910 ...
- 5 October
POJ2676 Sudoku 位运算 + 搜索.更好的优化方法:方案数最小的空格先填. 把某一位 置为 0:a &=~ (1<<n) 把某一位 置为 1:a |= (1<&l ...
- 浅谈关于SQL优化的思路
零.为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 一.观察 MySQL优 ...
- 理解json和jsonp的定义和区别以及如何实际使用
(一)什么是跨域请求? 首先要理解什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景. 常见 ...
- python web自动化测试框架搭建(功能&接口)——测试用例执行和结果收集
由于unittest框架中结果收集在不同文件中,所以此处重写结果收集方法,加入执行时间,失败信息,失败截图等 TestRunner.py # coding=utf-8 import sys impor ...
- JS对象—对象总结(创建、属性、方法)
1.创建对象Object 1.1 字面量的方式创建 1.2 new Object() 1.3 构造函数创建 1.4 工厂模式 1.5 Object.create() ES5新增方法 Object. ...
- 写的一个双向链表,测试OK
#include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct DoubleLi ...
- Convolutional Neural Networks(5):Pooling Layer
池化层(Pooling layer)同样是收到了视觉神经科学的启发.在初级视觉皮层V1(Primary visual cortex)中,包含了许多复杂细胞(Complex cells),这些细胞对于图 ...
- HTML5-注册表单案例fieldset
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Cookie/Session/Local Storage/IndexedDB
本文主要总结客户端/浏览器端数据存储的技术. 在客户端或者浏览器端存储,可以快速的访问页面,当前主要有Cookie,Session,Local Storage,IndexedDB四种(WebSQL呗废 ...