python2 中文字符编码转换
各种编码意义:
参考链接https://blog.csdn.net/qq_33733970/article/details/81084465
- GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码
- GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文
- cp936(中文编码)中文本地系统是Windows中的cmd,默认codepage是CP936,cp936就是指系统里第936号编码格式,即GB2312的编码
- Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。
- UTF-8 (8-bit Unicode Transformation Format)是最流行的一种对 Unicode
进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。ASCII 字符每个只需要用一个 byte ,与 ASCII的编码是一样的。所以说 ASCII 是 UTF-8 的一个子集。 - UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
# -*- coding: cp936 -*-
#str字符串格式
s = '中国'
print type(s)#<type 'str'>
print s#Unicode编码格式
u = u'中国'
print type(u)#<type 'unicode'>
print u #将Unicode编码的字符串u-->变换成str格式
str1 = u.encode('cp936')
print type(str1)
print str1str2 = u.encode('utf-8')
print type(str2)
print str2#将str编码的字符串s-->变换成Unicode格式
str3 = s.decode('gbk')
print type(str3)
print str3
输出结果:
<type 'str'>
中国
<type 'unicode'>
中国
<type 'str'>
中国
<type 'str'>
中国
<type 'unicode'>
中国
将# -- coding: cp936 --换成# -- coding: utf-8 --,输出结果如下:
<type 'str'>
中国
<type 'unicode'>
中国
<type 'str'>
中国
<type 'str'>
中国Traceback (most recent call last):File "C:\Users\gezi9\Desktop\编码转换.py", line 24, in <module>#灏唖tr缂栫爜鐨勫瓧绗︿覆s-->鍙樻崲鎴怳nicode鏍煎紡
UnicodeDecodeError: 'gbk' codec can't decode bytes in position 2-3: illegal multibyte sequence
去掉# -- coding: cp936 --和# -- coding: utf-8 --等,输出结果如下:
<type 'str'>
中国
<type 'unicode'>
ÖйúTraceback (most recent call last):File "C:\Users\gezi9\Desktop\编码转换.py", line 15, in <module>str1 = u.encode('cp936')
UnicodeEncodeError: 'gbk' codec can't encode character u'\xd6' in position 0: illegal multibyte sequence
在shell中执行上述程序:
>>> s = '中国'
>>> type(s)
<type 'str'>
>>> s
'\xd6\xd0\xb9\xfa'
>>> print s
中国>>> u = u'中国'
>>> type(u)
<type 'unicode'>
>>> u
u'\u4e2d\u56fd'
>>> print u
中国>>> str1 = u.encode('cp936')
>>> type(str1)
<type 'str'>
>>> str1
'\xd6\xd0\xb9\xfa'>>> str2 = u.encode('utf-8')
>>> type(str2)
<type 'str'>
>>> str2
'\xe4\xb8\xad\xe5\x9b\xbd'>>> str3 = s.decode('gbk')
>>> type(str3)
<type 'unicode'>
>>> str3
u'\u4e2d\u56fd'>>>
python2 中文字符编码转换相关推荐
- Python2.7字符编码详解
Python2.7字符编码详解 目录 Python2.7字符编码详解 声明 一. 字符编码基础 1.1 抽象字符清单(ACR) 1.2 已编码字符集(CCS) 1.3 字符编码格式(CEF) 1.3. ...
- java中文字符怎么保证出现正确_JAVA中文字符编码问题详解
JAVA中文字符编码问题详解 JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后,经过极为辛苦的调试和搜索资 ...
- (best!)JAVA中文字符编码问题详解
转载自:http://blog.csdn.net/youyue/article/details/4580402 JAVA中文字符编码问题详解 JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应 ...
- 网页编码与数据传递中的中文字符编码
最近工作中遇到中文编码,中文参数传递,AJAX返回值包含中文乱码的问题,为此奋斗了一宿,有点心得,有点体会,总结如下,希望对迷惑于此中者有解惑之功效! 在网上一阵狠搜,编码函数的确是有,包括Javas ...
- java生成html 控制编码方式_JAVA中文字符编码问题详解 控制台输出
JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...
- 解决Python3中的中文字符编码的问题-亲测有效
解决Python3中的中文字符编码的问题 一.原理篇: Unicode是一32位编码格式,不适合用来传输和存储,所以必须转换成utf-8,gbk等等.这篇文章主要介绍了Python3中的解决中文字符编 ...
- JAVA中文字符编码问题详解
JAVA中文字符编码问题详解 JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后,经过极为辛苦的调试和搜索资 ...
- iconv 判断字符编码_iconv字符编码转换全攻略
iconv(http://www.gnu.org/software/libiconv/)是一个开源的字符编码转换库,可以"方便"的完成几乎所有的编码转换工作.说简单是因为,它常用的 ...
- Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值
文章目录 前言 简述 ASCII GBK Unicode UTF-8 应用场景 开发环境 编码转换 16进制数值转换为16进制字符 16进制数值转化为字符串 16进制字符串转换为Unicode字符串 ...
最新文章
- 每周四十小时,你有多少是在为自己干活?
- PAT Basic 1048
- 撩课-Java每天5道面试题第12天
- 交换第六天——HSRP、VRRP、GLBP、SPAN
- Angular CLI 全局 ng.cmd 文件内容分析
- 再写循环队列----c++实现
- java按照io流向基类_Java IO详解
- java B2B2C Springcloud多租户电子商城系统- Gateway 之Predict篇...
- 使用特殊字体实现特殊报表效果
- UI2CODE智能生成flutter代码--整体架构 资料下载
- 酷派大观4 8970 刷android 4.4,酷派5890驱动 酷派 8970L(大观4)recovery卡刷通用刷机教程...
- abaqus移动热源DFLUX
- 2019年VQA论文整理
- 用户故事 | 验收标准
- 视频教程-嵌入式Linux驱动教程(韦东山2期)-驱动/内核开发
- 计算机控制原理 实验,计算机控制原理实验-直流电机实验
- Android MediaRecorder录制视频详细步骤
- [Solved] Pycharm 提示Unresolved reference
- 2011年中国城市高校数量排行榜(前十名)
- Ubuntu 安装MTP驱动访问安卓设备
热门文章
- 短视频火爆全网也难逃一死
- Visual Studio的正确打开方式|9中种常见错误
- mysql unique 重复_Mysql中 unique列插入重复值该怎么解决呢
- redis集群报错:(error) MOVED 解决方法
- 集成产品开发(IPD)简介
- Mybatis-plus 代码生成器(新)
- 原 CSS3学习第11篇——综合练习弹跳滚动的小球
- Springboot毕设项目海尔空调售后服务系统d70j3java+VUE+Mybatis+Maven+Mysql+sprnig)
- 直接打开网址可以跳转,通过window.open报错404
- Django 使用QSL server数据库