做网站服务器e3,可信赖的顺的网站建设,网站域名最便宜,django做网站和js做网站该楼层疑似违规已被系统折叠 隐藏此楼查看此楼对于Python解析器而Python解析器所干的事情#xff0c;就是#xff1a;Python解析器#xff0c;根据当前的所用的字符串编码类型此字符串编码类型#xff0c;是你自己所设置的不论是在Python的IDLE中#xff0c;还是Python文件…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼对于Python解析器而Python解析器所干的事情就是Python解析器根据当前的所用的字符串编码类型此字符串编码类型是你自己所设置的不论是在Python的IDLE中还是Python文件中都是你自己显示指定对应的编码类型的当然你没显示的指定的话那就用默认的配置如果是Python的IDLE如果你没修改defaultencoding那么就使用默认的字符编码可以通过sys.getdefaultencoding()而获得比如此处获得是asciiidle sys.getdefaultencoding如果是Python文件如果你没声明文件编码则使用默认的编码UTF-8常见的做法是指定为对应的UTF-8类型# -*- coding: utf-8 -*-相关内容不了解的可参考【整理】关于Python脚本开头两行的#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型去执行你的Python代码其中很常见的几种动作是打印print对应的所获得的字符对于字符串打印,Python的逻辑:如果是Unicode字符串,则可以,自动地,编码为对应的终端所用编码,然后正确的显示出来比如unicode的字符串,输出到windows的默认编码为GBK的cmd中,则Python可以自动将Unicode编码为GBK,然后输出到cmd中个别特殊情况,也会出错:当此unicode字符串中包含某特殊字符,而目标终端的编码**中,没有此字符,则很明显也是无法实现将Unicode编码为对应的特定编码的字符串,无法正确显示的如果是某种编码类型的str,则需要该str的编码类型,和目标终端编码匹配比如GBK的字符串,输出到windows的默认编码为GBK的cmd,则是可以正常输出的此处后来经过代码测试就发现一个有趣或者说诡异的问题虽然我们python文件声明的UTF-8编码但是实际上实际上是用GBK编码而此时文件中的字符串很明显是用GBK存储的所以将此GBK字符输出到GBK的cmd中是可以正常输出的。即此处字符串的类型很明显只和文件所用的实际编码有关而和文件所声明的代码无关。如果是UTF-8的字符串,输出到windows的默认编码为GBK的cmd,就会出错对相应的字符进行编码(为某种特定类型的字符str)或解码(为对应的unicode类型的字符)比如将当前的某种编码的字符串解码为Unicode字符串很明显也是要保证你字符串本身的编码和所指定的编码两者之间要一致的比如decodedUnicode someUtf8Str.decode(UTF-8)而如果用这样的decodedUnicode someGbkStr.decode(UTF-8)那就会出现错误