py2与py3防止中文乱码设置头部
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
https://blog.csdn.net/weixin_34195364/article/details/88988634
python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,
python的处理常常会报错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),
python没办法处理非ascii编码的,此时需要自己设置python的默认编码,一般设置为utf8的编码格式。
在程序中加入以下代码:即可将编码设置为utf8
-- py2
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
以上是python2的写法,但是在python3中这个需要已经不存在了,这么做也不会什么实际意义。
在Python2.x中由于str和byte之间没有明显区别,经常要依赖于defaultencoding来做转换。
在python3中有了明确的str和byte类型区别,从一种类型转换成另一种类型要显式指定encoding。
但是仍然可以使用这个方法代替
import importlib,sys
importlib.reload(sys)
"""
import os
import sys
import imp
# 防止出现中文乱码,程序重启重新加载模块
PY_VERSION = sys.version_info
PY_V_INFO = str(PY_VERSION.major) + "." + str(PY_VERSION.minor) + "." + str(PY_VERSION.micro)
if PY_VERSION < (3, 0):
print('当前python版本号为:%s', PY_V_INFO)
reload(sys)
sys.setdefaultencoding('utf-8')
else:
import importlib
importlib.reload(sys)
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具