python中base64 decode_python2解码base64中文乱码怎么解决?
Python 3之前,str对象只是一个简单的字符序列。base64解码后,得到的是一个字节序列:
>>> base64.b64decode('5Yac5aSr5a6J5YWo56S+5Yy6')
'\xe5\x86\x9c\xe5\xa4\xab\xe5\xae\x89\xe5\x85\xa8\xe7\xa4\xbe\xe5\x8c\xba'
这个字节序列到底是什么,取决于你的应用上下文。它可能是一个 ASCII 文本,可能是一个 UTF-8 文本,也可能是一个 GBK 文本。
如果你的终端环境或者网页环境,跟这个字节序列的编码方式一致,便可正常显示。例如,我的终端环境是 UTF-8,因此可以正常显示你解码后的字符串:
>>> print(base64.b64decode('5Yac5aSr5a6J5YWo56S+5Yy6'))
农夫安全社区
看截图,你用的应该是Windows的终端环境,编码应该是 GBK,所以你需要手工进行编码转换,从 UTF-8 换成 GBK :
>>> print(base64.b64decode('5Yac5aSr5a6J5YWo56S+5Yy6').decode('utf8').encode('gbk'))
那么,Python 3为啥不会乱码咧?——它想解决各种奇形怪状的乱码问题。Python中的str对象,不是简单的字节序列,它保存统一的Unicode码位,与编码方式无关。当你输出str对象时,Python根据终端环境编码,悄悄帮你转化成对应编码的字节序列。这样一来,终端乱码问题就得到根治。
关于文本编码相关的原理和最佳实践,可以参考我先前写的一篇文章:一文说清文本编码那些事 。如果有什么地方没有讲明白,请提出来,我再进一步完善。
洞悉文本编码本质,也就不畏惧任何乱码问题了。
python中base64 decode_python2解码base64中文乱码怎么解决?相关推荐
- linux unzip乱码,Linux 中unzip解压时中文乱码的解决办法
Linux 中unzip解压时中文乱码的解决办法 Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如"资料.zip"时,如果直接使 ...
- 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况(split、zip...)
先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...
- python中prin输出时出现中文乱码
出现的问题: 在java中,print输出是要有括号进行包裹的,于是,我就习惯性写出了以下的形式 pi = 3.14 r = float(input('请输入半径:')) area=2*pi*r*r ...
- [转]IE、FireFox、Chrome浏览器中关于URL传参中文乱码,解决兼容性问题!
原文地址:https://cloud.tencent.com/developer/article/1334736 前台用url传值中文,后台用request.getParameter接收参数.在Fir ...
- python基础系列教程——Python中的编码问题,中文乱码问题
全栈工程师开发手册 (作者:陈玓玏) python教程全解 如果不声明编码,则中文会报错,即使是注释也会报错.只要写中文,必须加一句:# -- coding:utf-8 --.原因:答案在PEP-02 ...
- python 保存本地乱码,解决python保存数据到csv文件中文乱码的方法
解决python保存数据到csv文件中文乱码的方法 发布时间:2020-07-08 13:49:53 来源:亿速云 阅读:695 作者:清晨 小编给大家分享一下解决python保存数据到csv文件中文 ...
- python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法
前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...
- linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案
Python中使用subprocess.Popen返回值乱码解决方案 问题描述 在python 2.7中,使用subprocess.Popen()调用*nix命令,并通过管道,获取其输出,并将其返回值 ...
- QT中中文乱码的解决
2019独角兽企业重金招聘Python工程师标准>>> QT中中文乱码的解决: #include <QtGui/QApplication> #include <QT ...
最新文章
- NestedScrolling CoordinatorLayout
- flutter报错Could not connect to lockdownd, error code -
- POM.xml 标签详解
- 操作系统,看这一篇足够了!
- iOS 9应用开发教程之多行读写文本ios9文本视图
- U-Boot常用命令
- legend3---阿里云如何多个域名指向同一个网站
- python提取个十百千位数字_实现人脸识别、人脸68个特征点提取,或许这个 Python 库能帮到你!...
- mac使用被动ftp模式(pasv)_ftp主动模式和被动模式
- Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
- Android-JNI开发系列《二》-在jni层的线程中回调到java层
- 如何在水晶报表9中实现选择打印机打印?
- 用VC进行64位编程
- 计算机前沿科学与发展,《数据与计算发展前沿》正式创刊
- 软件项目风险评估报告
- 重启计算机有什么用,强制重启电脑有什么危害
- 新时代火热技术栈:大数据->人工智能(AI)->区块链
- 如何用3天在成都逛吃玩过瘾?
- php tipask yii 单点登录_favorite-link/README.md at master · cccthon/favorite-link · GitHub
- BAT薪资大揭底:AI程序员80万太少!程序员薪资的天花板在哪?
热门文章
- 在word上写博客直接发到CSDN ——失败哈哈
- Linux - 内存管理
- 图片如何无损放大?分享一个简单好用的工具
- python code mudule,pipe,stdin,stdou,IMPORTANT
- 分享两篇文章 - PMs in Microsoft
- Cocos Creator 微信小游戏 填坑记录
- 【mac使用技巧】程序坞上的下载不见了该如何解决呢?
- 文件已在explorer.exe中打开无法删除,解决办法如下,全图
- 利用Py-Socket模块做的一个不登陆windows服务器自动实现替换或者调用自动拨号功能...
- 【实用技巧】MAC苹果电脑怎么远程?