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

在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. 将数组转化为List集合

    字符串转换为数组.将数组转换为List集合 public void testStringToList(){ String s="123-abc-456"; System.out.p ...

  2. Unable to bind to http://localhost:8080 on the IPv6 loopback interface: 'Cannot assign requested address'.

    .net core+nginx警告: warn: Microsoft.AspNetCore.Server.Kestrel[0] Unable to bind to http://localhost:5 ...

  3. Swagger学习(二、配置swagger)

    基于上一篇 其实只是在SwaggerConfig.class中配置docket,apiInfo @Configuration //变成配置文件 @EnableSwagger2 //开启swagger2 ...

  4. Pytorch入门随手记

    Pytorch入门随手记 什么是Pytorch? Pytorch是Torch到Python上的移植(Torch原本是用Lua语言编写的) 是一个动态的过程,数据和图是一起建立的. tensor.dot ...

  5. QT开发小技巧-窗口处理(一)

    this->setWindowFlags(Qt::WindowCloseButtonHint); // 仅保留关闭按钮 this->setAttribute(Qt::WA_DeleteOn ...

  6. JavaScript获取数组索引

    JavaScript获取数组索引: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  7. ASE19团队项目alpha阶段model组 scrum11 记录

    本次会议于11月15日,19时整在微软北京西二号楼sky garden召开,持续5分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing W ...

  8. Django 开发相关知识 整理

    前言 前端ajax HTTP请求头 ajax上传文件 jsonp跨域 URL 设计 分发 url参数编码 反向生成url 视图 request对象 POST url信息 视图返回值 HttpRespo ...

  9. 如何准备Java的高级技术面试

    一. 换位思考下,如果你面试官,你会怎么做 只能通过简历和面试来衡量,别无他法.如果某位大牛确认能力很行,但面试时无法充分地自证能力,那对不起了,过不了,现实就这样. 如果面试官由于能力不行,招进来一 ...

  10. 我理解的epoll(三)多线程模式下的ET

    ET模式下,需要循环从缓存中读取,直到返回EAGAIN没有数据可读后,一个被通知的事件才算结束.如果还读取过程中,同一个连接又有新的事件到来,触发其他线程处理同一个socket,就乱了.EPOLL_O ...