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

在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

最新文章

  1. Linux 端口-> PID -> 启动目录
  2. jquery validate ajax submit form
  3. android布局 FrameLayout(帧布局)详解
  4. ios layoutsubView 何时被调用
  5. 关于百度编辑器UEditor(1.4.3)在C#.NET中的应用实例
  6. 特性扩展:WebActivatorEx
  7. JsRender
  8. 深入理解offsetTop与offsetLeft
  9. OC-方法
  10. Yarn篇--搭建yran集群
  11. windows8.1全角与半角切换快捷键
  12. vhdl 数组
  13. 简易OA漫谈之工作流设计(六,快捷表单和动态表单)
  14. MFC 单文档添加按钮
  15. HDU 1024(新最大子序列和 DP)
  16. java实现图片上传功能,并返回图片保存路径
  17. ABAP-数据引用
  18. Zoning and LUN Masking
  19. 一文读懂BERT中的WordPiece
  20. 用.netcore写一个简单redis驱动,调试windows版本的redis.平且给set和get命令添加参数.

热门文章

  1. 怎样安装并编译TypeScript?
  2. c#将电脑时间同步到网络时间
  3. 在realm中动态查询用户的权限&角色
  4. C#学习资料
  5. loj 2292「THUSC 2016」成绩单
  6. AJAX中所谓的异步
  7. centos7 firewall指定IP与端口、端段访问(常用)
  8. 【小知识点】input输入框在安卓以及IOS手机中光标及字体不居中解决方法
  9. iPhone 11来了
  10. C# Winfrom GDI+ 自定义控件