Python字符串的编码与解码(encode与decode)


首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。

在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。

例如:ljq.py,编码为utf8,包含内容如下:

复制代码
#-*-coding:utf-8-*- 

s='中文'
print type(s) #查看s的字符类型
print s  s.decode('utf8') #解码utf8,默认的编码方式是unicode
s.decode('gbk', "ignore") #解码utf8,忽略其中有异常的编码,仅显示有效的编码
s.decode('gbk', 'replace')
print type(s)
print ss.encode('gb2312') ##编码为utf8
print type(s)
print s
复制代码

ljq.py编码必需与s.decode('utf8')指定的编码一致,不然会抛出解码异常信息,可以通过s.decode("gbk", "ignore")或s.decode("gbk", "replace")来解决。

另外对于一些包含特殊字符的编码,直接解码可能会报错,可以使用对于的参数来设置。如:
s.decode("utf-8", "ignore") 忽略其中有异常的编码,仅显示有效的编码
s.decode("utf-8", "replace") 替换其中异常的编码,这个相对来可能一眼就知道那些字符编码出问题了。

从unicode转str,被看做是把一个信息文本编码为二进制字节流的过程,要用encode方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux复习笔记

常用命令: pwd ;cd; ls; cp; mv; rm ;cat; stat; 01234567---r---w-rw---xr-x-wxrwx目录: root: 在root下: useradd mjq 创建mjq用户 passwd mjq 创建密…

Lintcode--4(1)--A+B

题目:给出两个整数a和b, 求他们的和, 但不能使用 等数学运算符。 说明: a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以 样例:如果 a1 并且 b2,返回3显然你可以直接 return a b,但…

1w存银行一年多少利息_100万存银行一年利息多少?能赚多少钱?

100万存银行一年利息多少,是否可以辞掉工作什么都不做随着经济水平的提升,大家手上的存款也越来越多了,众所周知,将资金存放在银行是可以赚取利息收益的,那么如果我们有100万的存款资金后,一年可以获得多少…

Notepad++背景颜色设置

经常试用notepad看代码,白色的背景连续看的时间长了眼睛很容变花,所以找了相关的设置选项,分享给大家 具体设置步骤如下: 然后如下设置 这样前景色背景色已经发生改变了哟,下面再修改下选中行的背景色吧,你…

思维水题

题目链接:https://codeforces.com/problemset/problem/1082/A 题目意思: 一本书有1到n页,起始页数是x, 一次翻页只能翻d(向前或者向后翻,但是不能翻出去,例如n5,x1 y5,d10 ) …

常用的位运算

1、按位与 & 0 & 0 0;0 & 1 0;1 & 0 0;1& 1 1 同时为1则结果为1,否则为0; 如3 & 8 3 00000011 5 00000101 结果为 00000001 2、按位或 || 0|00; 0|11; 1|01; 1|11; 两…

atom feed_适用于Atom Feed的Spring MVC

atom feed如何仅使用两个类就将提要(Atom)添加到Web应用程序? Spring MVC呢? 这是我的假设: 您正在使用Spring框架 您有一些要发布在供稿中的实体,例如“新闻” 您的“新闻”实体具有creationDate&#…

argb可以和rgb同步吗_神光同步酷炫幻彩,安钛克光棱120 RGB风扇套装

目前这个时代,电脑的各种配件来说,走向了万物皆要有光的风格。相信发光耳机,发光键盘,发光鼠标大家也都见过不少。侧透机箱甚至全透机箱搭配各类酷炫光效在电竞游戏领域也变得越来越火。许多小伙伴在组装一款电脑时也会选择发光风…

使用GDB命令行调试器调试C/C++程序

编译自:http://xmodulo.com/gdb-command-line-debugger.html 作者: Adrien Brochard 原创:LCTT https://linux.cn/article-4302-1.html 译者: SPccman 本文地址:https://linux.cn/article-4302-1.html 没有调试器的…

制造业物料清单BOM、智能文档阅读、科学文献影响因子、Celebrated Italian mathematician ZepartzatT Gozinto 与 高津托图...

意大利数学家Z.高津托 意大利伟大数学家Sire Zepartzatt Gozinto的生卒年代是一个谜[1],但是他发明的 “高筋图” 在 制造资源管理、物料清单(BOM)管理、智能阅读、科学文献影响因子计算 等方面具有重要应用。 高津托图 下图是一个制造业物料…

Dools的DMN运行时示例

正如去年宣布的那样 ,Drools 7.0将在合规性级别3上为DMN模型提供完整的运行时支持。 在撰写本文时,运行时实现功能已经完成 ,并且团队现在正在努力进行改进,以进行错误修复和用户友好。 不幸的是,对于7.0版本&#x…

走向开放、拥抱开源 —— 如何为代码选择一个合适的开源协议

目录 一. 前言 二. 开源协议选择 2.1. 何为 LICENCE? 2.2. 快速选择开源协议 三. 主流开源许可协议(Open Source License) 3.1. 常用开源协议 3.2. MIT 协议 3.3. BSD 协议 3.4. Apache Licence 协议 3.5. LGPL 协议 3.6. GPL 四…

MATLAB提取矩阵中的一部分

MATLAB对矩阵的操作十分灵活,下面对最近遇到的进行总结: 格式A(m,n),用于提取矩阵A中符合m,n要求的部分 1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。 2、提取某行某列 A…

garch模型python步骤_GARCH模型的建模步骤?

泻药,我将建立道琼斯工业平均指数(DJIA)日交易量对数比的ARMA-GARCH模型来演示建模步骤。原文链接:R语言: GARCH模型股票交易量的研究道琼斯股票市场指数​tecdat.cn获取数据load(fileDowEnvironment.RData)日交易量每日交易量内发生的 变化。…

JavaScript里面的居民们1-数据

编码 首先练习数字相关的一些操作&#xff1a; <div><label>Number A:<input id"radio-a" type"radio" name"math-obj" value"a"></label><input id"num-a" type"text"> <label…

GCC + pthread

多线程介绍POSIX 1003.1-2001 定义了多线程编程的标准API。这个API就是广为人知的pthreads。它的目的在于为跨平台编写多线程程序提供便利。本文介绍了Linux 和 WIN32 平台下的多线程程序的编写方法Linux 系统对 pthreads 提供了良好的支持。一般地安装完Linux系统后在/usr/inc…

MATLAB的size、length函数

size&#xff08;&#xff09;&#xff1a;获取矩阵的行数和列数 &#xff08;1&#xff09;ssize(A), 返回一个行向量&#xff0c;该行向量的第一个元素是矩阵的行数&#xff0c;第二个元素是矩阵的列数。 &#xff08;2&#xff09;[r,c]size(A), 当有两个输出参数…

python两个时间内的工作日_如何在Python中找到两个日期之间的星期一或任何其他工作日的数目?...

这是高效的-即使在开始和结束之间有一万天的时间-而且仍然非常灵活(它在sum函数内最多迭代7次)&#xff1a;def intervening_weekdays(start, end, inclusiveTrue, weekdays[0, 1, 2, 3, 4]):if isinstance(start, datetime.datetime):start start.date() # make a date from …

JS--继承

构造函数、原型、实例、原型链之间的联系 描述&#xff1a;每个构造函数都有一个原型对象&#xff1b; 每个原型对象都有一个指针&#xff0c;指向构造函数&#xff1b; 每个实例对象都有一个内部指针&#xff0c;指向原型对象&#xff1b; 若此时的原型对象是另一个类型的实例…

Linux C/C++多线程pthread实例

inux中C/C开发多线程程序多遵循POSIX线程接口&#xff08;也就是pthread&#xff09;&#xff0c;pthread涉及函数很多个&#xff08;更多参见pthread.h头文件&#xff09;&#xff0c;常用的有pthread_create、pthread_dispath、pthread_mutex_lock&#xff08;互斥锁定&#…