为啥python脚本中使用中文会报错? 解决方法已知.. 只想知道详细的原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥python脚本中使用中文会报错? 解决方法已知.. 只想知道详细的原因相关的知识,希望对你有一定的参考价值。

请说原因.. 不要给我来 怎么解决...

专门花了一下午,总结了Python 2.x中,常见的编码解码方面的错误。
更主要的是,先给你解释清楚了背后的逻辑
然后再给你解释,错误的现象,现象背后的原因,以及如何解决,并且教你如何举一反三等等。
此处只把几种最常见的问题的原因给你摘录过来:
Python中,想要将某字符串解码为对应的Unicode,但是所使用的编码类型和字符串本身的编码不匹配
Python中,打印字符串时,字符串本身的编码,与输出终端中所用编码不匹配
Python中,打印含某些特殊字符的Unicode类型字符串,但是输出终端中字符编码集中不包含这些特殊字符

详细帖子内容,参见:
【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法

不能说我总结的是最全的,但是可以说,在这个特定问题上,比我把问题解释的更清楚的,目前没看到。

另外,还有一个相关的帖子:
【整理】Python中字符编码的总结和对比:Python 2.x的str和unicode vs Python 3.x的bytes和str
关于这部分内容,之前也是没有看到解释的清楚的,所以自己花时间,把其解释的尽可能的清楚。不了解的人,可以去看看。

(此处不能贴地址,请自行用google搜帖子标题,就可以找到帖子地址了)
参考技术A 开头添上针对不同平台的中文编码。
一般linux下用
# -*- coding: utf-8 -*-
windows下gbk
# -*- coding: gbk -*-
参考技术B GDK或UTF-8,还能什么原因,你不加这段,python无法识别中文,所以就报错

以上是关于为啥python脚本中使用中文会报错? 解决方法已知.. 只想知道详细的原因的主要内容,如果未能解决你的问题,请参考以下文章

为啥我用pycharm的cv2.imshow会报错,一直没有解决,要自闭了?

python中的多线程为啥会报错?

在shell脚本执行sql语句为啥会报错

python write 写入为啥会报这个错'gbk'codec can't encode character \xbb'i

Python中,dict(((1,2),(2,3)))可以,为啥dict((1,2))会报错呢?

这段python代码测试时,为啥会报错?从测试看,是编码的问题,一有中文输出结果,网页就无法显示结果。