python decode unicode encode
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
代码中字符串的默认编码与代码文件本身的编码一致,以下是不一致的两种:
1. s = u'你好'
该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码(查看默认编码:import sys print('hello',sys.getdefaultencoding()) ascii 。设置默认编码:import sys reload(sys) sys.setdefaultencoding('utf-8')))无关。因此,对于这种情况做编码转换,只需要直接使用encode方法将其转换成指定编码即可.
2. # -*- coding: utf-8 -*-
s = ‘你好’
此时为utf-8编码,ascii编码不能显示汉字
isinstance(s, unicode) #用来判断是否为unicode ,是返回True,不是返回False
unicode(str,'gb2312')与str.decode('gb2312')是一样的,都是将gb2312编码的str转为unicode编码
使用str.__class__可以查看str的编码形式
原理说了半天,最后来个包治百病的吧:)
#!/usr/bin/env python
#coding=utf-8
s="中文"
if isinstance(s, unicode):
#s=u"中文"
print s.encode('gb2312')
else:
#s="中文"
print s.decode('utf-8').encode('gb2312')
语音模块代码:
# -*- coding: utf-8 -*-import import sys print('hello',sys.getdefaultencoding()) def xfs_frame_info(words):#decode utf-8 to python internal unicode coding isinstance(words,unicode)wordu = words.decode('utf-8')#encode python unicode to gbkdata = wordu.encode('gbk')length = len(data) + 2frame_info = bytearray(5)frame_info[0] = 0xfdframe_info[1] = (length >> 8)frame_info[2] = (length & 0x00ff)frame_info[3] = 0x01frame_info[4] = 0x01buf = frame_info + dataprint("buf:",buf)return bufif __name__ == "__main__":print("hello world")words1= u'你好'#encodetype = isinstance(words1,unicode)#print("encodetype",encodetype)print("origin unicode", words1)words= words1.encode('utf-8')print("utf-8 encoded", words)a = xfs_frame_info(words)print('a',a)if __name__ == "__main__":print("hello world")words1= '你好'print("oringe utf-8 encode:",words1)encodetype = isinstance(words1,unicode)wordu = words1.decode('utf-8') print("unicode from utf-8 decode:",wordu)#encodetype = isinstance(words1,utf-8)#encodetype = isinstance(words1,'ascii')#print("encodetype",encodetype)#print("origin unicode", words1) word_utf8 = wordu.encode('utf-8')#encodetype2 = isinstance(words,utf8)#print("encodetype2",encodetype2)print("utf-8 encoded",word_utf8)a = xfs_frame_info(word_utf8)print('a',a)
你好前不加u''时,要多一步decode为unicode
转载于:https://www.cnblogs.com/cj2014/p/4236114.html
python decode unicode encode相关推荐
- Python JSON decode和encode
Python: Decode和Encode JSON import json, dumps encode数据,loads decode数据. def DecodingJson(json_file):d ...
- python跟unicode一样吗_PYTHON编码处理-str与Unicode的区别
一篇关于STR和UNICODE的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 ...
- python中decode和encode的区别
首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码, 即先将其他编码的字符串解码(decode)成unicode,再从unic ...
- Python字符串的encode与decode研究心得乱码问题解决方法
Python字符串的encode与decode研究心得乱码问题解决方法 为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成"\xe4\xb8\xad\xe6\x96 ...
- python爬取小说出现乱码_详解Python解决抓取内容乱码问题(decode和encode解码)
一.乱码问题描述 经常在爬虫或者一些操作的时候,经常会出现中文乱码等问题,如下 原因是源网页编码和爬取下来后的编码格式不一致 二.利用encode与decode解决乱码问题 字符串在Python内部的 ...
- Python字符串的encode与decode 解决乱码问题
为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成"/xe4/xb8/xad/xe6/x96/x87"的形式?为什么会报错"UnicodeEnc ...
- python中文decode和encode转码
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(en ...
- Python解决抓取内容乱码问题(decode和encode解码)
一.乱码问题描述 经常在爬虫或者一些操作的时候,经常会出现中文乱码等问题,如下 原因是源网页编码和爬取下来后的编码格式不一致 二.利用encode与decode解决乱码问题 字符串在Python内部的 ...
- python程序采用unicode编码、英文字符,Python 与 Unicode
unicode 与 utf8 的关系 unicode 定义了统一的字符集, UTF8 则是一种编码 unicode 字符集的方式. 在 python2 中, str 类型, unicode 类型都是 ...
最新文章
- matlab ia模块,MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能...
- 转换Word文档为PDF文件
- 【Linux入门连载二】Linux系统有哪些基本目录?
- 机器学习Sklearn实战——决策树算法
- H2内嵌数据库的使用
- TCP与UDP网络编程总结(一)
- 学习第六天@Linq操作
- 【干货】史上最全个性化推荐技术资料包(附50余份技术文档下载链接)
- centos 7 163 yum 源 python 2.7.5
- 谷歌浏览器插件(jsonview)的下载与安装
- ECharts地图省会,城市,县坐标
- URI与URL的区别
- html将网页保存成图片,谷歌浏览器保存网页为图片方法_chrome如何将网页保存为图片-win7之家...
- VTK系列教程九:VR图像裁剪
- 这个寒冷的冬天 是谁的机会?
- 双击启动PS软件界面不显示、PS无法打开,解决方法
- h5应用数据加密_H5+应用打包JS没有加密混淆
- nexus代理阿里云仓库gradle仓库
- 【仿写酷界面】【HenCoder】仿小米运动的运动记录界面
- java集成paypal支付,含Android,服务端代码
热门文章
- python不同模块间传递数据_Python模块-数据传送模块
- python在金融工程领域包括_金融工程专业对计算机的能力要求到底是什么?
- java lambda例子_Java lambda 表达式常用示例
- serverless搭建html,基于ServerLess的极简网页计数器:源码分析与实践
- 第三章计算机试题,计算机等级考试二级VB测试题(第三章)
- 计算机网络子网划分路由配置实验报告,洛阳理工学院+计算机网络+实验5子网划分路由配置...
- ue4 怎么修改骨骼动画_【UE4】动画重定向
- 2纳米芯片问世!芯片性能要起飞?!
- 40岁“老程序员”的“辛酸”自述:
- 为什么PCB板通常是绿色的?