一. 含有中文字符无法运行

在python3中用的是Unicode编码,Unicode号称万国码,可以向所有的编码进行兼容。不会出现这种问题。
Python2中使用的是ASCII编码,会出现这种问题。解决步骤如下。

  1. 对代码的编码进行注解
    在头部加入

    coding=utf-8 或者 #-- coding:utf-8 --

二、无法打印中文字符

  1. 对文件进行编码解码
    python2
    Python编码之间Unicode作为中间的过度。所以编码能够进行通用:

    -- coding:utf-8 --

    s = "中文"
    print(s.decode("utf-8").encode("gbk"))
    编码解码整个过程,就好像是Unicode是一个翻译官一样:例如jbk和gbk之间的一个过程:

jbk无法直接转换到gbk,所以需要有一个过程, jbk decode生成Unicode utf-8然后在进行encode生成gbk

python3
encode 在编码的同时,会把数据转换成byte类型

  import sys
  print(sys.getfilesystemencoding())
  s = "中文"             #py3 默认就是utf8 unicode向下兼容utf-8
  s_to_gpk = s.encode("gbk")
  print(s_to_gpk.decode("gbk"))    #py3是不需要转换的,但是要转的话还要转回去

补充:

'''
-----二进制:(0 and 1)
-------->>ASCII :只能存放英文河拉丁字符。一个字符占一个字节,8位
--------------->>gb2312:只能6700多个中文,1980年
--------------------->>gpk1.0:存了2万多个字符,1995
--------------------------->>gb18030:2000,27000中文(在中国软件发布的时候必须用gb18030)

---------->>unicode: utf-32:一个字符占四个字节
---------->>unicode: utf-16>一个字符占两个字节或两个以上,65535(实在找不到的时候在utf-32里面找)
---------->>unicode: utf-8:一个英文用ASCII码来存,一个中文占3个字节,utf=8表示是根据表示什么来决定大小的。

---------->>GBK GB2312 表示中文得时候用得是两个字节。
'''

原文章:
https://www.cnblogs.com/chien-ma/articles/7259861.html

[python]有中文字符程序异常的解决方案的更多相关文章

  1. python处理中文字符

    1.在py文件中使用中文字符 unicode.py文件内容如下所示: # -*- coding:utf-8 -*- str_ch = '我们women' uni_ch = u'我们women' pri ...

  2. 使用Python提取中文字符

    #功能:国际化测试,用于提取应用设计包中的中文字符,并输出report#解压---筛选---整理路径---提取中文---输出报告 ################################### ...

  3. python 匹配中文字符

    参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html           http://topic.csdn. ...

  4. python实现中文字符繁体和简体中文转换-乾颐堂

    需求:把中文字符串进行繁体和简体中文的转换: 思路:引入简繁体处理库,有兴趣的同学可以研究一下内部实现,都是python写的 1.下载zh_wiki.py及langconv zh_wiki.py:ht ...

  5. Python解决中文字符的问题

    from __future__ import unicode_literals print(type("test")) #<type 'unicode'> Chinat ...

  6. python 连接数据库-设置oracle ,mysql 中文字符问题

    import cx_Oracle import MySQLdb def conn_oracle(): cnn = cx_Oracle.connect('用户名','密码','ip:端口号/数据库') ...

  7. PyCharm 中文 字符 python 报错 的 完美 解决方案!

    PyCharm 中文 字符 python 报错 的 完美 解决方案! #_*_ coding:utf-8_*_ https://www.python.org/dev/peps/pep-0263/ 到p ...

  8. 数据挖掘:python数据清洗cvs里面带中文字符

    数据清洗,使用python数据清洗cvs里面带中文字符,意图是用字典对应中文字符,即key值是中文字符,value值是index,自增即可:利用字典数据结构没有重复key值的特性,把中文字符映射到了数 ...

  9. python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断

    如何处理中午编码的问题 Python的UnicodeDecodeError: 'utf8' codec can't decode byte 0xxx in position 这个错误是因为你代码中的某 ...

随机推荐

  1. 牛客 216D 消消乐 (二分图最小点覆盖)

    大意: 给定棋盘, 每次消除一行或一列, 求最小次数使得消除完所有'*'. 裸的二分图最小点覆盖. 二分图的最小点覆盖等于最大匹配, 输出方案时从所有左部未盖点开始标记交替路上的点, 最后左部所有未标 ...

  2. Java 私有构造函数的使用

    被private修饰的私有构造函数无法在其他类中调用,也就是该类无法在其他类中实例化. 这种情况常用的使用场景:1.单例模式: 2.防止实例化. 一.单例模式 单例模式是一种常用的设计模式,思想是单例 ...

  3. C#数字前补0

    [TestMethod] public void Test8() { ; string b = string.Format("{0:000000}", a); , '); }

  4. 图解Java继承内存分配

    图解Java继承内存分配   继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法. (3)子 ...

  5. MQTT图形化客户端比较

    1 MQTT.fx (1)协议支持 TCP(tcp) TLS(tls) (2)特点 界面美观,操作便捷 不支持WebSocket协议 基于java开发 支持代理 通过Nashorn Engine的JS ...

  6. C#异步编程中的最佳实践(做法)

    原文地址Stephen Cleary 写得很详细,尤其讲到了 GUI 上下文调用,在APS.NET中它会阻塞 GUI 线程,从而导致死锁.而控制台中却不存在这个问题. 比如开发过程中本地写控制台程序测 ...

  7. Viola–Jones object detection framework--Rapid Object Detection using a Boosted Cascade of Simple Features中文翻译 及 matlab实现(见文末链接)

    ACCEPTED CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION 2001 Rapid Object Detection using a B ...

  8. JS经典算法

     寻找500以内能被5和7整除的数字:for(var num=1;num<=500&&num++;) if(num%7==0&&num%5==0){ consol ...

  9. css样式背景图片设置缩放

    一.背景颜色图片平铺 background-color 背景颜色 background-image 背景图片地址 background-repeat 是否平铺 默认是平铺 background-pos ...

  10. 主流RPC框架详解,以及与SOA、REST的区别

    什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC使 ...