Files
hustoj/web/python-docs/library/base64.html
2025-03-09 17:10:56 +08:00

448 lines
39 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>base64 --- Base16, Base32, Base64, Base85 数据编码 &#8212; Python 3.8.20 文档</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script src="../_static/translations.js"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="在 Python 3.8.20 文档 中搜索"
href="../_static/opensearch.xml"/>
<link rel="author" title="关于这些文档" href="../about.html" />
<link rel="index" title="索引" href="../genindex.html" />
<link rel="search" title="搜索" href="../search.html" />
<link rel="copyright" title="版权所有" href="../copyright.html" />
<link rel="next" title="binhex --- 对binhex4文件进行编码和解码" href="binhex.html" />
<link rel="prev" title="mimetypes --- 映射文件夹到 MIME 类型" href="mimetypes.html" />
<link rel="canonical" href="https://docs.python.org/3/library/base64.html" />
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<nav class="nav-content" role="navigation">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Logo"/>
</a>
<div class="version_switcher_placeholder"></div>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero"
d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path>
</svg>
<input type="text" name="q" aria-label="快速搜索"/>
<input type="submit" value="转向"/>
</form>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<h4>上一个主题</h4>
<p class="topless"><a href="mimetypes.html"
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code> --- 映射文件夹到 MIME 类型</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="binhex.html"
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">binhex</span></code> --- 对binhex4文件进行编码和解码</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/base64.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
这个文档所针对的是一个已不再受支持的 Python 旧版本。
你应当升级版本,并阅读
<a href="/3/library/base64.html"> Python 当前稳定版本的文档</a>.
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
accesskey="I">索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="binhex.html" title="binhex --- 对binhex4文件进行编码和解码"
accesskey="N">下一页</a> |</li>
<li class="right" >
<a href="mimetypes.html" title="mimetypes --- 映射文件夹到 MIME 类型"
accesskey="P">上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="netdata.html" accesskey="U">互联网数据处理</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-base64">
<span id="base64-base16-base32-base64-base85-data-encodings"></span><h1><a class="reference internal" href="#module-base64" title="base64: RFC 3548: Base16, Base32, Base64 Data Encodings; Base85 and Ascii85"><code class="xref py py-mod docutils literal notranslate"><span class="pre">base64</span></code></a> --- Base16, Base32, Base64, Base85 数据编码<a class="headerlink" href="#module-base64" title="永久链接至标题"></a></h1>
<p><strong>源代码:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.8/Lib/base64.py">Lib/base64.py</a></p>
<hr class="docutils" id="index-0" />
<p>此模块提供了将二进制数据编码为可打印的 ASCII 字符以及将这些编码解码回二进制数据的函数。它为 <span class="target" id="index-19"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc3548.html"><strong>RFC 3548</strong></a> 指定的 Base16, Base32 和 Base64 编码以及已被广泛接受的 Ascii85 和 Base85 编码提供了编码和解码函数。</p>
<p><span class="target" id="index-20"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc3548.html"><strong>RFC 3548</strong></a> 编码的目的是使得二进制数据可以作为电子邮件的内容正确地发送,用作 URL 的一部分,或者作为 HTTP POST 请求的一部分。其中的编码算法和 <strong class="program">uuencode</strong> 程序是不同的。</p>
<p>此模块提供了两个接口。新的接口提供了从 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">类字节对象</span></a> 到 ASCII 字节 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> 的编码,以及将 ASCII 的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">类字节对象</span></a> 或字符串解码到 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> 的操作。此模块支持定义在 <span class="target" id="index-21"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc3548.html"><strong>RFC 3548</strong></a> 中的所有 base-64 字母表 普通的、URL 安全的和文件系统安全的)。</p>
<p>旧的接口不提供从字符串的解码操作,但提供了操作 <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">文件对象</span></a> 的编码和解码函数。旧接口只支持标准的 Base64 字母表,并且按照 <span class="target" id="index-22"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc2045.html"><strong>RFC 2045</strong></a> 的规范每 76 个字符增加一个换行符。注意:如果你需要支持 <span class="target" id="index-23"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc2045.html"><strong>RFC 2045</strong></a>,那么使用 <a class="reference internal" href="email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> 模块可能更加合适。</p>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>新的接口提供的解码函数现在已经支持只包含 ASCII 的 Unicode 字符串。</p>
</div>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.4 版更改: </span>所有 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">类字节对象</span></a> 现在已经被所有编码和解码函数接受。添加了对 Ascii85/Base85 的支持。</p>
</div>
<p>新的接口提供:</p>
<dl class="function">
<dt id="base64.b64encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b64encode</code><span class="sig-paren">(</span><em class="sig-param">s</em>, <em class="sig-param">altchars=None</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b64encode" title="永久链接至目标"></a></dt>
<dd><p><a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em> 进行 Base64 编码,并返回编码后的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p>可选项 <em>altchars</em> 必须是一个长 2 字节的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a>,它指定了用于替换 <code class="docutils literal notranslate"><span class="pre">+</span></code><code class="docutils literal notranslate"><span class="pre">/</span></code> 的字符。这允许应用程序生成 URL 或文件系统安全的 Base64 字符串。默认值是 <code class="docutils literal notranslate"><span class="pre">None</span></code>,使用标准 Base64 字母表。</p>
</dd></dl>
<dl class="function">
<dt id="base64.b64decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b64decode</code><span class="sig-paren">(</span><em class="sig-param">s</em>, <em class="sig-param">altchars=None</em>, <em class="sig-param">validate=False</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b64decode" title="永久链接至目标"></a></dt>
<dd><p>解码 Base64 编码过的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>s</em> 并返回解码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p>可选项 <em>altchars</em> 必须是一个长 2 字节的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a>,它指定了用于替换 <code class="docutils literal notranslate"><span class="pre">+</span></code><code class="docutils literal notranslate"><span class="pre">/</span></code> 的字符。</p>
<p>如果 <em>s</em> 被不正确地填写,一个 <a class="reference internal" href="binascii.html#binascii.Error" title="binascii.Error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">binascii.Error</span></code></a> 错误将被抛出。</p>
<p>如果 <em>validate</em> 值为 <code class="docutils literal notranslate"><span class="pre">False</span></code> (默认情况),则在填充检查前,将丢弃既不在标准 base-64 字母表之中也不在备用字母表中的字符。如果 <em>validate</em><code class="docutils literal notranslate"><span class="pre">True</span></code>,这些非 base64 字符将导致 <a class="reference internal" href="binascii.html#binascii.Error" title="binascii.Error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">binascii.Error</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.standard_b64encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">standard_b64encode</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.standard_b64encode" title="永久链接至目标"></a></dt>
<dd><p>编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em>,使用标准 Base64 字母表并返回编码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.standard_b64decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">standard_b64decode</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.standard_b64decode" title="永久链接至目标"></a></dt>
<dd><p>解码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>s</em>,使用标准 Base64 字母表并返回编码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.urlsafe_b64encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">urlsafe_b64encode</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.urlsafe_b64encode" title="永久链接至目标"></a></dt>
<dd><p>编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em>,使用 URL 与文件系统安全的字母表,使用 <code class="docutils literal notranslate"><span class="pre">-</span></code> 以及 <code class="docutils literal notranslate"><span class="pre">_</span></code> 代替标准 Base64 字母表中的 <code class="docutils literal notranslate"><span class="pre">+</span></code><code class="docutils literal notranslate"><span class="pre">/</span></code>。返回编码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>。结果中可能包含 <code class="docutils literal notranslate"><span class="pre">=</span></code></p>
</dd></dl>
<dl class="function">
<dt id="base64.urlsafe_b64decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">urlsafe_b64decode</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.urlsafe_b64decode" title="永久链接至目标"></a></dt>
<dd><p>解码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>s</em>,使用 URL 与文件系统安全的字母表,使用 <code class="docutils literal notranslate"><span class="pre">-</span></code> 以及 <code class="docutils literal notranslate"><span class="pre">_</span></code> 代替标准 Base64 字母表中的 <code class="docutils literal notranslate"><span class="pre">+</span></code><code class="docutils literal notranslate"><span class="pre">/</span></code>。返回解码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.b32encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b32encode</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b32encode" title="永久链接至目标"></a></dt>
<dd><p>用 Base32 编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em> 并返回编码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.b32decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b32decode</code><span class="sig-paren">(</span><em class="sig-param">s</em>, <em class="sig-param">casefold=False</em>, <em class="sig-param">map01=None</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b32decode" title="永久链接至目标"></a></dt>
<dd><p>解码 Base32 编码过的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>s</em> 并返回解码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p>可选的 <em>casefold</em> 是一个指定小写字幕是否可接受为输入的标志。为了安全考虑,默认值为 <code class="docutils literal notranslate"><span class="pre">False</span></code></p>
<p><span class="target" id="index-24"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc3548.html"><strong>RFC 3548</strong></a> 允许将字母 0(zero) 映射为字母 O(oh),并可以选择是否将字母 1(one) 映射为 I(eye) 或 L(el)。可选参数 <em>map01</em> 不是 <code class="docutils literal notranslate"><span class="pre">None</span></code> 时,它的值指定 1 的映射目标 (I 或 l),当 <em>map01</em><code class="docutils literal notranslate"><span class="pre">None</span></code> 时, 0 总是被映射为 O。为了安全考虑默认值被设为 <code class="docutils literal notranslate"><span class="pre">None</span></code>,如果是这样, 0 和 1 不允许被作为输入。</p>
<p>如果 <em>s</em> 被错误地填写或输入中存在字母表之外的字符,将抛出 <a class="reference internal" href="binascii.html#binascii.Error" title="binascii.Error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">binascii.Error</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.b16encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b16encode</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b16encode" title="永久链接至目标"></a></dt>
<dd><p>用 Base16 编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em> 并返回编码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.b16decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b16decode</code><span class="sig-paren">(</span><em class="sig-param">s</em>, <em class="sig-param">casefold=False</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b16decode" title="永久链接至目标"></a></dt>
<dd><p>解码 Base16 编码过的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>s</em> 并返回解码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p>可选的 <em>casefold</em> 是一个指定小写字幕是否可接受为输入的标志。为了安全考虑,默认值为 <code class="docutils literal notranslate"><span class="pre">False</span></code></p>
<p>如果 <em>s</em> 被错误地填写或输入中存在字母表之外的字符,将抛出 <a class="reference internal" href="binascii.html#binascii.Error" title="binascii.Error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">binascii.Error</span></code></a></p>
</dd></dl>
<dl class="function">
<dt id="base64.a85encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">a85encode</code><span class="sig-paren">(</span><em class="sig-param">b</em>, <em class="sig-param">*</em>, <em class="sig-param">foldspaces=False</em>, <em class="sig-param">wrapcol=0</em>, <em class="sig-param">pad=False</em>, <em class="sig-param">adobe=False</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.a85encode" title="永久链接至目标"></a></dt>
<dd><p>用 Ascii85 编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em> 并返回编码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p><em>foldspaces</em> 是一个可选的标志,使用特殊的短序列 'y' 代替 'btoa' 提供的 4 个连续空格 (ASCII 0x20)。这个特性不被 &quot;标准&quot; Ascii85 编码支持。</p>
<p><em>wrapcol</em> 控制了输出是否包含换行符 (<code class="docutils literal notranslate"><span class="pre">b'\n'</span></code>). 如果该值非零, 则每一行只有该值所限制的字符长度.</p>
<p><em>pad</em> 控制在编码之前输入是否填充为4的倍数。请注意<code class="docutils literal notranslate"><span class="pre">btoa</span></code> 实现总是填充。</p>
<p><em>adobe</em> 控制编码后的字节序列是否要加上 <code class="docutils literal notranslate"><span class="pre">&lt;~</span></code><code class="docutils literal notranslate"><span class="pre">~&gt;</span></code>,这是 Adobe 实现所使用的。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.4 新版功能.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="base64.a85decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">a85decode</code><span class="sig-paren">(</span><em class="sig-param">b</em>, <em class="sig-param">*</em>, <em class="sig-param">foldspaces=False</em>, <em class="sig-param">adobe=False</em>, <em class="sig-param">ignorechars=b' \t\n\r\v'</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.a85decode" title="永久链接至目标"></a></dt>
<dd><p>解码 Ascii85 编码过的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>s</em> 并返回解码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p><em>foldspaces</em> 旗标指明是否应接受 'y' 短序列作为 4 个连续空格 (ASCII 0x20) 的快捷方式。 此特性不被 &quot;标准&quot; Ascii85 编码格式所支持。</p>
<p><em>adobe</em> 控制输入序列是否为 Adobe Ascii85 格式 (即附加 &lt;~ 和 ~&gt;)。</p>
<p><em>ignorechars</em> 应当是一个 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串,其中包含要从输入中忽略的字符。 这应当只包含空白字符,并且默认包含 ASCII 中所有的空白字符。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.4 新版功能.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="base64.b85encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b85encode</code><span class="sig-paren">(</span><em class="sig-param">b</em>, <em class="sig-param">pad=False</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b85encode" title="永久链接至目标"></a></dt>
<dd><p>用 base85如 git 风格的二进制 diff 数据所用格式)编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>b</em> 并返回编码后的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<p>如果 <em>pad</em> 为真值,输入将以 <code class="docutils literal notranslate"><span class="pre">b'\0'</span></code> 填充以使其编码前长度为 4 字节的倍数。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.4 新版功能.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="base64.b85decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">b85decode</code><span class="sig-paren">(</span><em class="sig-param">b</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.b85decode" title="永久链接至目标"></a></dt>
<dd><p>解码 base85 编码过的 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> 或 ASCII 字符串 <em>b</em> 并返回解码过的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>。 如有必要,填充会被隐式地移除。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.4 新版功能.</span></p>
</div>
</dd></dl>
<p>旧式接口:</p>
<dl class="function">
<dt id="base64.decode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">decode</code><span class="sig-paren">(</span><em class="sig-param">input</em>, <em class="sig-param">output</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.decode" title="永久链接至目标"></a></dt>
<dd><p>解码二进制 <em>input</em> 文件的内容并将结果二进制数据写入 <em>output</em> 文件。 <em>input</em><em>output</em> 必须为 <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">文件对象</span></a>. <em>input</em> 将被读取直至 <code class="docutils literal notranslate"><span class="pre">input.readline()</span></code> 返回空字节串对象。</p>
</dd></dl>
<dl class="function">
<dt id="base64.decodebytes">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">decodebytes</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.decodebytes" title="永久链接至目标"></a></dt>
<dd><p>解码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em>,该对象必须包含一行或多行 base64 编码的数据,并返回已解码的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a></p>
<div class="versionadded">
<p><span class="versionmodified added">3.1 新版功能.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="base64.decodestring">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">decodestring</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.decodestring" title="永久链接至目标"></a></dt>
<dd><p>已弃用的 <a class="reference internal" href="#base64.decodebytes" title="base64.decodebytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">decodebytes()</span></code></a> 的别名。</p>
<div class="deprecated">
<p><span class="versionmodified deprecated">3.1 版后已移除.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="base64.encode">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">encode</code><span class="sig-paren">(</span><em class="sig-param">input</em>, <em class="sig-param">output</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.encode" title="永久链接至目标"></a></dt>
<dd><p>编码二进制 <em>input</em> 文件的内容并将经 base64 编码的数据写入 <em>output</em> 文件。 <em>input</em><em>output</em> 必须为 <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">文件对象</span></a><em>input</em> 将被读取直到 <code class="docutils literal notranslate"><span class="pre">input.read()</span></code> 返回空字节串对象。 <a class="reference internal" href="#base64.encode" title="base64.encode"><code class="xref py py-func docutils literal notranslate"><span class="pre">encode()</span></code></a> 会在每输出 76 个字节之后插入一个换行符 (<code class="docutils literal notranslate"><span class="pre">b'\n'</span></code>),并会确保输出总是以换行符来结束,如 <span class="target" id="index-25"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc2045.html"><strong>RFC 2045</strong></a> (MIME) 所规定的那样。</p>
</dd></dl>
<dl class="function">
<dt id="base64.encodebytes">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">encodebytes</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.encodebytes" title="永久链接至目标"></a></dt>
<dd><p>编码 <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like object</span></a> <em>s</em>,其中可以包含任意二进制数据,并返回包含经 base64 编码数据的 <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>,每输出 76 个字节之后将带一个换行符 (<code class="docutils literal notranslate"><span class="pre">b'\n'</span></code>),并会确保在末尾也有一个换行符,如 <span class="target" id="index-26"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc2045.html"><strong>RFC 2045</strong></a> (MIME) 所规定的那样。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.1 新版功能.</span></p>
</div>
</dd></dl>
<dl class="function">
<dt id="base64.encodestring">
<code class="sig-prename descclassname">base64.</code><code class="sig-name descname">encodestring</code><span class="sig-paren">(</span><em class="sig-param">s</em><span class="sig-paren">)</span><a class="headerlink" href="#base64.encodestring" title="永久链接至目标"></a></dt>
<dd><p>一个被弃用的 <a class="reference internal" href="#base64.encodebytes" title="base64.encodebytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">encodebytes()</span></code></a> 的别名。</p>
<div class="deprecated">
<p><span class="versionmodified deprecated">3.1 版后已移除.</span></p>
</div>
</dd></dl>
<p>此模块的一个使用示例:</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">base64</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">encoded</span> <span class="o">=</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64encode</span><span class="p">(</span><span class="sa">b</span><span class="s1">&#39;data to be encoded&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">encoded</span>
<span class="go">b&#39;ZGF0YSB0byBiZSBlbmNvZGVk&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">data</span> <span class="o">=</span> <span class="n">base64</span><span class="o">.</span><span class="n">b64decode</span><span class="p">(</span><span class="n">encoded</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">data</span>
<span class="go">b&#39;data to be encoded&#39;</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">参见</p>
<dl class="simple">
<dt>模块 <a class="reference internal" href="binascii.html#module-binascii" title="binascii: Tools for converting between binary and various ASCII-encoded binary representations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">binascii</span></code></a></dt><dd><p>支持模块包含ASCII到二进制和二进制到ASCII转换。</p>
</dd>
<dt><span class="target" id="index-27"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc1521.html"><strong>RFC 1521</strong></a> - MIME (Multipurpose Internet Mail Extensions) 第一部分:规定并描述因特网消息体的格式的机制。</dt><dd><p>第 5.2 节“Base64 内容转换编码格式” 提供了 base64 编码格式的定义。</p>
</dd>
</dl>
</div>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>上一个主题</h4>
<p class="topless"><a href="mimetypes.html"
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code> --- 映射文件夹到 MIME 类型</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="binhex.html"
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">binhex</span></code> --- 对binhex4文件进行编码和解码</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/base64.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
>索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="binhex.html" title="binhex --- 对binhex4文件进行编码和解码"
>下一页</a> |</li>
<li class="right" >
<a href="mimetypes.html" title="mimetypes --- 映射文件夹到 MIME 类型"
>上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="netdata.html" >互联网数据处理</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="footer">
&copy; <a href="../copyright.html">版权所有</a> 2001-2024, Python Software Foundation.
<br />
This page is licensed under the Python Software Foundation License Version 2.
<br />
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br />
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
<br />
最后更新于 12月 09, 2024.
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
<br />
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
</div>
</body>
</html>