当前位置: 首页 > news >正文 重庆点优建设网站公司市住房和城乡建设局 news 2025/11/6 13:07:00 重庆点优建设网站公司,市住房和城乡建设局,it培训机构排行榜,wordpress视频缩略图自动播放假设您有一个想要通过网络传输的二进制图像文件。您很惊讶对方没有正确接收该文件 - 该文件只是包含奇怪的字符#xff01; 嗯#xff0c;您似乎试图以原始位和字节格式发送文件#xff0c;而所使用的媒体是为流文本而设计的。 避免此类问题的解决方法是什么#xff1f;答…假设您有一个想要通过网络传输的二进制图像文件。您很惊讶对方没有正确接收该文件 - 该文件只是包含奇怪的字符 嗯您似乎试图以原始位和字节格式发送文件而所使用的媒体是为流文本而设计的。 避免此类问题的解决方法是什么答案是Base64编码。在本文中我将向您展示如何使用 Python 对二进制图像进行编码和解码。该程序被说明为一个独立的本地程序但您可以将该概念应用于不同的应用程序例如将编码图像从移动设备发送到服务器以及许多其他应用程序。 什么是 Base64 在深入了解本文之前让我们先定义一下 Base64 的含义。 Base64 是一种将 8 位二进制数据编码为可以用 6 位表示的格式的方法。仅使用字符 A-Z、a-z、0-9、、 / 用来表示数据其中 用于填充数据。例如使用此编码三个 8 位字节将转换为四个 6 位组。 术语 Base64 取自多用途互联网邮件扩展 (MIME) 标准该标准广泛用于 HTTP 和 XML最初是为编码电子邮件附件以进行传输而开发的。 我们为什么使用 Base64 Base64 对于二进制数据表示非常重要因此它允许二进制数据以看起来和充当纯文本的方式表示这使得存储在数据库中、在电子邮件中发送或在其他应用程序中使用更加可靠。基于文本的格式例如 XML。 Base64 主要用于以 ASCII 字符串格式表示数据。 正如本文介绍中提到的如果没有 Base64有时数据将根本无法读取。 Base64 编码 Base64 编码是将二进制数据转换为 64 个字符的有限字符集的过程。如第一节所示这些字符是 A-Z、a-z、0-9、 和 / 数一数你注意到它们加起来是 64 了吗。该字符集被认为是最常见的字符集被称为 MIME 的 Base64。它使用 A-Z、a-z 和 0-9 作为前 62 个值以及 和 / 用于最后两个值。 Base64编码的数据最终会比原始数据更长因此如上所述每3个字节的二进制数据至少有4个字节的Base64编码数据。这是因为我们将数据压缩成更小的字符集。 您是否见过如下所示的原始电子邮件文件的一部分很可能源自未发送的电子邮件如果是这样那么您已经看到了 Base64 编码的实际应用 如果你注意到最后有 你可以断定这是 Base64 编码因为编码过程中使用了等号进行填充。 Content-Type: text/plain; charsetUTF-8 Content-Transfer-Encoding: base642KfZhNiz2YTYp9mFINi52YTZitmD2YUg2YjYsdit2YXYqSDYp9mE2YTZhyDZiNio2LHZg9in2KrZ h9iMDQoNCtij2YjYryDZgdmC2Lcg2KfZhNin2LPYqtmB2LPYp9ixINi52YYg2KfZhNmF2YLYsdix 2KfYqiDYp9mE2K/Ysdin2LPZitipINin2YTYqtmKINiq2YbYtdit2YjZhiDYqNmH2Kcg2YTZhdmG INmK2LHZitivINin2YTYqtmI2LPYuSDZgdmKDQrYt9mE2Kgg2KfZhNi52YTZhSDYp9mE2LTYsdi5 2YrYjCDYudmE2YXYpyDYqNij2YbZiiDYutmK2LEg2YXYqtiu2LXYtSDYqNin2YTYudmE2YUg2KfZ hNi02LHYudmKINmI2KPZgdiq2YLYryDZhNmE2YXZhtmH2Kwg2KfZhNi52YTZhdmKDQrZhNiw2YTZ gy4NCg0K2KzYstin2YPZhSDYp9mE2YTZhyDYrtmK2LHYpyDYudmE2Ykg2YbYtdit2YPZhSDZgdmK INmH2LDYpyDYp9mE2LTYo9mGLg0KDQrYudio2K/Yp9mE2LHYrdmF2YYNCg --089e0141aa264e929a0514593016 Content-Type: text/html; charsetUTF-8 Content-Transfer-Encoding: base64 Base64分多步进行如下 要编码的文本转换为其各自的十进制值即转换为相应的 ASCII 值即 a:97、b:98 等。这是 ASCII 表。将上述步骤中获得的十进制值转换为其等价的二进制值即 97: 01100001。将所有二进制等价物连接起来获得一大组二进制数。一大堆二进制数被分成相等的部分每个部分仅包含 6 位。相等的 6 位组将转换为其十进制等效值。最后十进制等值转换为其 Base64 值即 4: E。以下是十进制值及其 Base64 字母表。 Base64解码 Base64 解码与 Base64 编码相反。换句话说它是通过与上一节中描述的步骤相反的步骤来执行的。 所以Base64解码的步骤可以描述如下 字符串中的每个字符都会更改为其 Base64 十进制值。获得的十进制值将转换为其等价的二进制值。从获得的每个二进制数中截断二进制数的前两位并将这组 6 位组合在一起形成一大串二进制数字。将上一步获得的大串二进制数字分成 8 位一组。8 位二进制数将转换为其等值的十进制数。最后将获得的十进制值转换为相应的 ASCII 值。 字符串的Base64编码和解码 一旦您了解了幕后发生的事情您就会更容易理解这一切是如何运作的。让我们尝试编码和解码一个简单的三字母单词Hey。 我们首先将单词的每个字母转换为其等效的 ASCII然后将等效的 ASCII 转换为二进制。这为我们提供了以下值 信ASCII 索引值8 位二进制值H7201001000e10101100101y12101111001 换句话说我们可以像这样以二进制形式编写 Hey 01001000 01100101 01111001 总共 24 位当转换为 6 位组时每个位产生四个值 010010 000110 010101 111001 在 Base64 表中字符 A 到 Z 由值 0 到 25 表示。字符 a 到 z 由值 26 到 51 表示。数字 0 到 9 由值 52 到 61 表示。字符 和 / 用 62 和 63 表示。字符 用于在无法将位正确分为 6 组时进行填充。 我们现在将重新排列的位转换为数值然后获取代表这些数值的字符。 6 位二进制值Base64 索引值信01001018小0001106G01010121V111001575 根据我们上面的计算字母 Hey 在 Base64 编码时将变成 SGV5。我们可以使用以下代码测试这是否正确 from base64 import b64encodetext_binary bHey# SGV5 print(b64encode(text_binary)) 整个过程反向完成在Base64解码后得到我们的原始数据。 现在我将快速向您展示另一个单词 Heyo 的编码以解释编码字符串中 的出现。 信ASCII 索引值8 位二进制值H7201001000e10101100101y12101111001o11101101111 一共有32位。这将为我们提供五个不同的 6 位组其中有两个剩余位11。我们用 0000 填充它们以获得 6 位组。根据上述排列将 6 位组成一组将得到以下结果 010010 000110 010101 111001 011011 110000 重新排列的位将根据 Base64 索引值返回以下字符。 6 位二进制值Base64 索引值信01001018小0001106G01010121V11100157501101127b11000048w 这意味着 Heyo 的 Base64 编码值为 SGV5bw。每个 代表一对 00我们添加它们用于填充原始位序列。 from base64 import b64encodetext_binary bHeyo# SGV5bw print(b64encode(text_binary)) 对图像进行 Base64 编码 现在让我们开始讨论本文的重点。在本节中我将向您展示如何使用 Python 轻松地对图像进行 Base64 编码。 我将使用以下二进制图像。继续下载它让我们开始使用 Python 我假设图像的名称是 deer.gif。 为了在Python中使用Base64我们要做的第一件事就是导入base64模块 导入base64 为了对图像进行编码我们只需使用函数 base64.b64encode(s) 即可。 Python对该函数的描述如下 使用 Base64 对类似字节的对象 s 进行编码并返回编码后的字节。 因此我们可以执行以下操作来对图像进行 Base64 编码 import base64 image open(deer.gif, rb) #open binary file in read mode image_read image.read() image_64_encode base64.b64encode(image_read) 如果您想查看编码过程的输出请键入以下内容 打印 image_64_encode Base64 解码图像 要使用 Python 解码图像我们只需使用 base64.b64decode(s) 函数。 Python 提及了有关此函数的以下内容 解码 Base64 编码的类似字节的对象或 ASCII 字符串并返回解码后的字节。 因此为了解码我们在上一节中编码的图像我们执行以下操作 base64.decode(image_64_encode) 把它们放在一起 让我们将用于 Base64 编码和解码图像的程序放在一起。执行此操作的 Python 脚本应如下所示 import base64 image open(deer.gif, rb) image_read image.read() image_64_encode base64.b64encode(image_read) image_64_decode base64.b64decode(image_64_encode) image_result open(deer_decode.gif, wb) # create a writable image and write the decoding result image_result.write(image_64_decode) 如果您打开桌面上的 deer_decode.gif您会发现您拥有我们在第一步中编码的原始图像 deer.gif。 正如我们从本文中看到的Python 使执行看似复杂的任务变得非常容易。 URL 安全编码和解码 正如我在本教程前面提到的除了常规字母数字值之外Base64 编码还使用字符 和 / 。但是这些字符在 URL 中具有特殊含义。这意味着使用这些字符的 Base64 编码值如果在 URL 内部使用可能会导致意外行为。 此问题的一种解决方案是使用 urlsafe_base64encode() 和 urlsafe_base64decode() 函数对任何数据进行编码和解码。这些函数在编码过程中将 替换为 -将 / 替换为 _。 下面是一个 Python 示例显示了这种差异 import base64image open(dot.jpg, rb) image_data image.read()unsafe_encode base64.b64encode(image_data) safe_encode base64.urlsafe_b64encode(image_data)# b/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNr.... print(unsafe_encode)# b_9j_4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP_sABFEdWNr.... print(safe_encode) 学习Python 无论您是刚刚入门还是希望学习新技能的经验丰富的程序员都可以通过我们完整的 Python 教程指南学习 Python。 这篇文章已根据 Nitish Kumar 的贡献进行了更新。 Nitish 是一名 Web 开发人员拥有在各种平台上创建电子商务网站的经验。他将业余时间花在个人项目上让他的日常生活变得更轻松或者在晚上与朋友一起散步。 文章转载自: http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.hphfy.cn.gov.cn.hphfy.cn http://www.morning.rlbc.cn.gov.cn.rlbc.cn http://www.morning.geledi.com.gov.cn.geledi.com http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn http://www.morning.mjjty.cn.gov.cn.mjjty.cn http://www.morning.fksyq.cn.gov.cn.fksyq.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn http://www.morning.zlgth.cn.gov.cn.zlgth.cn http://www.morning.gnghp.cn.gov.cn.gnghp.cn http://www.morning.stbfy.cn.gov.cn.stbfy.cn http://www.morning.dmxzd.cn.gov.cn.dmxzd.cn http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn http://www.morning.frfnb.cn.gov.cn.frfnb.cn http://www.morning.sloxdub.cn.gov.cn.sloxdub.cn http://www.morning.lmctj.cn.gov.cn.lmctj.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.zlxrg.cn.gov.cn.zlxrg.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.rbknf.cn.gov.cn.rbknf.cn http://www.morning.knngw.cn.gov.cn.knngw.cn http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn http://www.morning.kjrp.cn.gov.cn.kjrp.cn http://www.morning.xyrss.cn.gov.cn.xyrss.cn http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn http://www.morning.pmftz.cn.gov.cn.pmftz.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.wgdnd.cn.gov.cn.wgdnd.cn http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn http://www.morning.kpgft.cn.gov.cn.kpgft.cn http://www.morning.wnqbf.cn.gov.cn.wnqbf.cn http://www.morning.sdktr.com.gov.cn.sdktr.com http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn http://www.morning.fqljq.cn.gov.cn.fqljq.cn http://www.morning.gfznl.cn.gov.cn.gfznl.cn http://www.morning.dkslm.cn.gov.cn.dkslm.cn http://www.morning.nxrgl.cn.gov.cn.nxrgl.cn http://www.morning.gwjnm.cn.gov.cn.gwjnm.cn http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn http://www.morning.ccpnz.cn.gov.cn.ccpnz.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.qphgp.cn.gov.cn.qphgp.cn http://www.morning.hxmqb.cn.gov.cn.hxmqb.cn http://www.morning.gcysq.cn.gov.cn.gcysq.cn http://www.morning.rykgh.cn.gov.cn.rykgh.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.qnklx.cn.gov.cn.qnklx.cn http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn http://www.morning.hxxzp.cn.gov.cn.hxxzp.cn http://www.morning.qsszq.cn.gov.cn.qsszq.cn http://www.morning.wfjrl.cn.gov.cn.wfjrl.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.rnmmh.cn.gov.cn.rnmmh.cn http://www.morning.chkfp.cn.gov.cn.chkfp.cn http://www.morning.nzcys.cn.gov.cn.nzcys.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.smmby.cn.gov.cn.smmby.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn http://www.morning.yptwn.cn.gov.cn.yptwn.cn http://www.morning.hlshn.cn.gov.cn.hlshn.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.tgdys.cn.gov.cn.tgdys.cn http://www.morning.fstdf.cn.gov.cn.fstdf.cn http://www.morning.zyrp.cn.gov.cn.zyrp.cn http://www.morning.mhybs.cn.gov.cn.mhybs.cn http://www.morning.yntsr.cn.gov.cn.yntsr.cn http://www.morning.yqjjn.cn.gov.cn.yqjjn.cn http://www.morning.bpmdh.cn.gov.cn.bpmdh.cn http://www.morning.dhckp.cn.gov.cn.dhckp.cn http://www.morning.qpqb.cn.gov.cn.qpqb.cn 查看全文 http://www.tj-hxxt.cn/news/282333.html 相关文章: 如何才能让自己做的网站百度能搜深圳市房地产信息平台官网 如何自已建网站赣州建设监督网站 北京网站设计师培训一个服务器可以建多少个网站 报纸网站建设鄂州网站建设推广报价 网站 多语言网站返回按钮设计 网站描述怎么写比较好免费的网站关键词查询工具 网站下载免费软件安装中国企业网是干什么的 旅游网站网页设计鞋行业的网站建设 如何选择锦州网站建设网站内链技巧 网站开发合同适用印花税diywap手机微网站内容管理系统 常德网站建设技术网站咋建立 三只松鼠网站开发怎么样做国际网站生意 长春网站建设SEO优化营销假网站如何做 手机网站制作招聘怀化百度整站优化服务 dw制作个人网站的具体步骤电子商务网站建设实训作业 在线生成网站地图seo优化公司信 建设工程建筑网谷歌seo需要做什么的 网站建设服务方案ppt模板银川森林半岛 电商购物网站模板网页ui设计流程 光华路网站建设vpswindows俄罗斯 高端模板建站报价一墨设计公司 河南省住房城乡建设厅官方网站建站快车的优点 制作网站主要包括哪些步骤免费进出货管理软件app 高端网站制作要多少钱如何去掉网站后缀wordpress 免费注册网站域名可以用吗网站备案年限 淘宝客做网站推广网站建设一般都有什么项目 海豚一键做淘宝网站wordpress 预览插件下载 王欣网站建设与维护wordpress中文瀑布流 开网店需要自己做网站吗wordpress添加dplayer 找合伙人做网站信誉好的专业网站建设