# -*- coding: utf-8 -*-
utf-8是告诉python interpret如何解释字符串的编码
所以你前面写的是utf-8
而实际编码不是utf-8
python解释器就会报错
-----------前言结束,开始介绍--------------------------------------
----------------针对VSCode环境----------------------
1 # -*- coding: GB2312 -*-
2 确保该文件要确实是使用GB2312编码保存的
3 print 函数直接 打印 '啊' 就行,u'啊' 报错
4 str类型 也可以直接打印
5 读GB2312文件操作
fo = open("1.txt", "r")
str1 = fo.read(6)
print "读取的字符串是: ", str1
fo.close()
其中1.txt 需要是 GB2312保存的
6 读utf-8等其他文件操作
fo = open("2.txt", "rb")
str1 = fo.read(6)
print "读取的字符串是: ", str1.decode('utf-8').encode('GB2312')
fo.close()
7 另外,fo.read(number) number应该符合GB2312/utf8的编码特点
例如 GB2312 中文字符为2字节 number==单数 报错
utf8 中文字符为3字节 number 如不是3倍数,报错
8 对于一般操作文件均采用utf-8因为在linux中,不存在这个乱码问题
归根结底是因为 cmd 的编码时GB2312 虽然可以使用chcp 65001来改,但是并不能彻底解决编码问题 还是报错IOError: [Errno 0] Error
9 如深入研究的话,编码问题还会出现在文件输出的方面 sys.getfilesystemencoding()
文字显示补充:
setting.json中的file.encoding和sys.getdefaultencoding() 是完全不一样的
file.encoding是指**.py文件的编码格式
sys.getdefaultencoding() 是python解释器的编码格式 默认是ascii
-----------------
import sys
reload(sys)
在使用vscode + Anaconda python 环境中遇到个奇怪问题
报错:UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 0: invalid start byte
虽然解决但不知道原理
此前是不需要这样做的,但是更新后,必须执行sys reload代码
--------
str1.decode('utf-8').encode('GB2312')
此种方法并不是修改str1的值,编码解码都在返回值体现
print str1 直接 是不行的
需要print str1.decode('utf-8').encode('GB2312')
--------------
也可以使用
reload(sys)# Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入
sys.setdefaultencoding('utf-8')
进行解释器的编码重新设置
即可使用如下形式输出
str = '中文'
print str.encode('GB2312')
--------------
eg:
# -*- coding: utf8 -*-
import sys
reload(sys)
print sys.getdefaultencoding()
#方法1
s = "中文"
s1 = s.decode('utf-8').encode('GB2312')
print s1
#方法2
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()
str = '中文'
print str.encode('GB2312')
VSCode中文乱码解决方案总结(全)
需积分: 48 58 浏览量
2018-09-21
20:40:02
上传
评论 8
收藏 1KB RAR 举报
lst666
- 粉丝: 2
- 资源: 7
最新资源
- 校园帮项目,毕业设计/课程设计/javaWeb/SSM
- C++ plotting library,matplotlib-cpp-master.zip
- 案例源码matplotlib-examples-master.zip
- 基于JavaScript 实现的KMP 算法
- 基于C++实现二叉树的创建,遍历,添加,查找与删除
- 基于C语言实现二叉树的基本操作
- 毕业设计基于STM32的测量温度与压力的数据处理设计C语言完整源码+论文.zip
- 基于MATLAB的PCA算法人脸识别项目源码+GUI界面+说明文档.zip
- 基于STM32的测量温度与压力的数据处理设计源码+论文(毕业设计).zip
- Vision Transformer 网络对不同氨气氧气浓度轨迹RAS 图像数据集的分类,包含训练权重和数据集、迁移学习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈