[python]有中文字符程序异常的解决方案
一. 含有中文字符无法运行
在python3中用的是Unicode编码,Unicode号称万国码,可以向所有的编码进行兼容。不会出现这种问题。
Python2中使用的是ASCII编码,会出现这种问题。解决步骤如下。
对代码的编码进行注解
在头部加入coding=utf-8 或者 #-- coding:utf-8 --
二、无法打印中文字符
对文件进行编码解码
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]有中文字符程序异常的解决方案的更多相关文章
- python处理中文字符
1.在py文件中使用中文字符 unicode.py文件内容如下所示: # -*- coding:utf-8 -*- str_ch = '我们women' uni_ch = u'我们women' pri ...
- 使用Python提取中文字符
#功能:国际化测试,用于提取应用设计包中的中文字符,并输出report#解压---筛选---整理路径---提取中文---输出报告 ################################### ...
- python 匹配中文字符
参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html http://topic.csdn. ...
- python实现中文字符繁体和简体中文转换-乾颐堂
需求:把中文字符串进行繁体和简体中文的转换: 思路:引入简繁体处理库,有兴趣的同学可以研究一下内部实现,都是python写的 1.下载zh_wiki.py及langconv zh_wiki.py:ht ...
- Python解决中文字符的问题
from __future__ import unicode_literals print(type("test")) #<type 'unicode'> Chinat ...
- python 连接数据库-设置oracle ,mysql 中文字符问题
import cx_Oracle import MySQLdb def conn_oracle(): cnn = cx_Oracle.connect('用户名','密码','ip:端口号/数据库') ...
- PyCharm 中文 字符 python 报错 的 完美 解决方案!
PyCharm 中文 字符 python 报错 的 完美 解决方案! #_*_ coding:utf-8_*_ https://www.python.org/dev/peps/pep-0263/ 到p ...
- 数据挖掘:python数据清洗cvs里面带中文字符
数据清洗,使用python数据清洗cvs里面带中文字符,意图是用字典对应中文字符,即key值是中文字符,value值是index,自增即可:利用字典数据结构没有重复key值的特性,把中文字符映射到了数 ...
- python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
如何处理中午编码的问题 Python的UnicodeDecodeError: 'utf8' codec can't decode byte 0xxx in position 这个错误是因为你代码中的某 ...
随机推荐
- 关于泛型擦除的知识(来源于csdn地址:https://blog.csdn.net/briblue/article/details/76736356)
泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇.泛型是 Java 中一个很小巧的概念,但 ...
- Scala学习十七——类型参数
一.本章要点 类.特质.方法和函数都可以有类型参数 将类型参数放置在名称之后,以方括号括起来 类型界定的语法为T<:UpperBound.T>:LowerBound.T<%ViewB ...
- DIP原则
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象.
- PHP 多维数组将下标从0开始
点击链接加入群[php/web 学习课堂]:https://jq.qq.com/?_wv=1027&k=5645xiw 欢迎大家加入,一起讨论学习 模拟一个: public function ...
- swagger 的使用
最近在用 .Net Core 做项目 了解到swagger 是一个不错的工具 简单介绍一下 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧 ...
- ESP8266 UDP通信
#include "driver/uart.h" #include "espconn.h" void ICACHE_FLASH_ATTR user_rf_pre ...
- yii框架下使用redis
1 首先获取到 yii2-redis-master.zip 压缩包 下载地址https://github.com/yiisoft/yii2-redis/archive/master.zip 2 把下载 ...
- PHPExcel的简单使用
一.在做PHP开发时,我们会遇到把数据导出变为execl表格的形式,使用PHPExcel就可以,下载地址:https://github.com/PHPOffice/PHPExcel,下载后会显示这么多 ...
- SURF算法源代码OPENSURF分析
SURF算法源代码分析 平台:win x64 + VS2015专业版 +opencv2.4.11 配置类似参考OPENSIFT,参考我的另一篇博客:https://www.cnblogs.com/Al ...
- linux centos常用命令
mkdir 创建文件夹 -Z:设置安全上下文,当使用SELinux时有效: -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限: -p或--parents ...