• 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!
  • 相关阅读:
    SQL COUNT() 语法
    SQL AVG 函数
    Android开发
    IIf 函数
    励志
    王者归来
    Java基础知识总结(绝对经典)
    LeetCode算法题-Third Maximum Number(Java实现-四种解法)
    LeetCode算法题-Fizz Buzz(Java实现)
    LeetCode算法题-Longest Palindrome(五种解法)
  • 原文地址:https://www.cnblogs.com/sunxiuwen/p/14790570.html
Copyright © 2020-2023  润新知