/
usr
/
share
/
doc
/
python3-docs
/
html
/
c-api
/
/usr/share/doc/python3-docs/html/c-api
mkdir
upload
Name
Size
Mode
Actions
abstract.html
9716
0644
edit
dl
rm
allocation.html
14728
0644
edit
dl
rm
apiabiversion.html
10681
0644
edit
dl
rm
arg.html
89735
0644
edit
dl
rm
bool.html
10333
0644
edit
dl
rm
buffer.html
64150
0644
edit
dl
rm
bytearray.html
15098
0644
edit
dl
rm
bytes.html
25487
0644
edit
dl
rm
capsule.html
21699
0644
edit
dl
rm
cell.html
11942
0644
edit
dl
rm
code.html
12388
0644
edit
dl
rm
codec.html
22641
0644
edit
dl
rm
complex.html
21268
0644
edit
dl
rm
concrete.html
17602
0644
edit
dl
rm
conversion.html
19525
0644
edit
dl
rm
coro.html
9452
0644
edit
dl
rm
datetime.html
26513
0644
edit
dl
rm
descriptor.html
11959
0644
edit
dl
rm
dict.html
35244
0644
edit
dl
rm
exceptions.html
128414
0644
edit
dl
rm
file.html
14544
0644
edit
dl
rm
float.html
15155
0644
edit
dl
rm
function.html
18215
0644
edit
dl
rm
gcsupport.html
23787
0644
edit
dl
rm
gen.html
10939
0644
edit
dl
rm
import.html
42920
0644
edit
dl
rm
index.html
15759
0644
edit
dl
rm
init.html
116862
0644
edit
dl
rm
intro.html
68136
0644
edit
dl
rm
iter.html
10062
0644
edit
dl
rm
iterator.html
11928
0644
edit
dl
rm
list.html
22504
0644
edit
dl
rm
long.html
44839
0644
edit
dl
rm
mapping.html
17524
0644
edit
dl
rm
marshal.html
16935
0644
edit
dl
rm
memory.html
58531
0644
edit
dl
rm
memoryview.html
13510
0644
edit
dl
rm
method.html
17051
0644
edit
dl
rm
module.html
56821
0644
edit
dl
rm
none.html
8755
0644
edit
dl
rm
number.html
44801
0644
edit
dl
rm
objbuffer.html
12624
0644
edit
dl
rm
object.html
60861
0644
edit
dl
rm
objimpl.html
8087
0644
edit
dl
rm
refcounting.html
13454
0644
edit
dl
rm
reflection.html
11189
0644
edit
dl
rm
sequence.html
28925
0644
edit
dl
rm
set.html
31197
0644
edit
dl
rm
slice.html
13459
0644
edit
dl
rm
stable.html
9193
0644
edit
dl
rm
structures.html
37151
0644
edit
dl
rm
sys.html
35639
0644
edit
dl
rm
tuple.html
30022
0644
edit
dl
rm
type.html
18813
0644
edit
dl
rm
typeobj.html
164125
0644
edit
dl
rm
unicode.html
188046
0644
edit
dl
rm
utilities.html
8966
0644
edit
dl
rm
veryhigh.html
54572
0644
edit
dl
rm
weakref.html
13615
0644
edit
dl
rm
Edit:
/usr/share/doc/python3-docs/html/c-api/codec.html
(22641B)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Codec registry and support functions — Python 3.6.7 documentation</title> <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/sidebar.js"></script> <link rel="search" type="application/opensearchdescription+xml" title="Search within Python 3.6.7 documentation" href="../_static/opensearch.xml"/> <link rel="author" title="About these documents" href="../about.html" /> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="copyright" title="Copyright" href="../copyright.html" /> <link rel="next" title="Abstract Objects Layer" href="abstract.html" /> <link rel="prev" title="Reflection" href="reflection.html" /> <link rel="shortcut icon" type="image/png" href="../_static/py.png" /> <link rel="canonical" href="https://docs.python.org/3/c-api/codec.html" /> <script type="text/javascript" src="../_static/copybutton.js"></script> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="abstract.html" title="Abstract Objects Layer" accesskey="N">next</a> |</li> <li class="right" > <a href="reflection.html" title="Reflection" accesskey="P">previous</a> |</li> <li><img src="../_static/py.png" alt="" style="vertical-align: middle; margin-top: -1px"/></li> <li><a href="https://www.python.org/">Python</a> »</li> <li> <a href="../index.html">3.6.7 Documentation</a> » </li> <li class="nav-item nav-item-1"><a href="index.html" >Python/C API Reference Manual</a> »</li> <li class="nav-item nav-item-2"><a href="utilities.html" accesskey="U">Utilities</a> »</li> <li class="right"> <div class="inline-search" style="display: none" role="search"> <form class="inline-search" action="../search.html" method="get"> <input placeholder="Quick search" type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> <script type="text/javascript">$('.inline-search').show(0);</script> | </li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="codec-registry-and-support-functions"> <span id="codec-registry"></span><h1>Codec registry and support functions<a class="headerlink" href="#codec-registry-and-support-functions" title="Permalink to this headline">¶</a></h1> <dl class="function"> <dt id="c.PyCodec_Register"> int <code class="descname">PyCodec_Register</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *search_function</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Register" title="Permalink to this definition">¶</a></dt> <dd><p>Register a new codec search function.</p> <p>As side effect, this tries to load the <code class="xref py py-mod docutils literal notranslate"><span class="pre">encodings</span></code> package, if not yet done, to make sure that it is always first in the list of search functions.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_KnownEncoding"> int <code class="descname">PyCodec_KnownEncoding</code><span class="sig-paren">(</span>const char<em> *encoding</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_KnownEncoding" title="Permalink to this definition">¶</a></dt> <dd><p>Return <code class="docutils literal notranslate"><span class="pre">1</span></code> or <code class="docutils literal notranslate"><span class="pre">0</span></code> depending on whether there is a registered codec for the given <em>encoding</em>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_Encode"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_Encode</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *object</em>, const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Encode" title="Permalink to this definition">¶</a></dt> <dd><p>Generic codec based encoding API.</p> <p><em>object</em> is passed through the encoder function found for the given <em>encoding</em> using the error handling method defined by <em>errors</em>. <em>errors</em> may be <em>NULL</em> to use the default method defined for the codec. Raises a <a class="reference internal" href="../library/exceptions.html#LookupError" title="LookupError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">LookupError</span></code></a> if no encoder can be found.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_Decode"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_Decode</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *object</em>, const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Decode" title="Permalink to this definition">¶</a></dt> <dd><p>Generic codec based decoding API.</p> <p><em>object</em> is passed through the decoder function found for the given <em>encoding</em> using the error handling method defined by <em>errors</em>. <em>errors</em> may be <em>NULL</em> to use the default method defined for the codec. Raises a <a class="reference internal" href="../library/exceptions.html#LookupError" title="LookupError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">LookupError</span></code></a> if no encoder can be found.</p> </dd></dl> <div class="section" id="codec-lookup-api"> <h2>Codec lookup API<a class="headerlink" href="#codec-lookup-api" title="Permalink to this headline">¶</a></h2> <p>In the following functions, the <em>encoding</em> string is looked up converted to all lower-case characters, which makes encodings looked up through this mechanism effectively case-insensitive. If no codec is found, a <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> is set and <em>NULL</em> returned.</p> <dl class="function"> <dt id="c.PyCodec_Encoder"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_Encoder</code><span class="sig-paren">(</span>const char<em> *encoding</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Encoder" title="Permalink to this definition">¶</a></dt> <dd><p>Get an encoder function for the given <em>encoding</em>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_Decoder"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_Decoder</code><span class="sig-paren">(</span>const char<em> *encoding</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_Decoder" title="Permalink to this definition">¶</a></dt> <dd><p>Get a decoder function for the given <em>encoding</em>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_IncrementalEncoder"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_IncrementalEncoder</code><span class="sig-paren">(</span>const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_IncrementalEncoder" title="Permalink to this definition">¶</a></dt> <dd><p>Get an <a class="reference internal" href="../library/codecs.html#codecs.IncrementalEncoder" title="codecs.IncrementalEncoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">IncrementalEncoder</span></code></a> object for the given <em>encoding</em>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_IncrementalDecoder"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_IncrementalDecoder</code><span class="sig-paren">(</span>const char<em> *encoding</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_IncrementalDecoder" title="Permalink to this definition">¶</a></dt> <dd><p>Get an <a class="reference internal" href="../library/codecs.html#codecs.IncrementalDecoder" title="codecs.IncrementalDecoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">IncrementalDecoder</span></code></a> object for the given <em>encoding</em>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_StreamReader"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_StreamReader</code><span class="sig-paren">(</span>const char<em> *encoding</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *stream</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_StreamReader" title="Permalink to this definition">¶</a></dt> <dd><p>Get a <a class="reference internal" href="../library/codecs.html#codecs.StreamReader" title="codecs.StreamReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">StreamReader</span></code></a> factory function for the given <em>encoding</em>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_StreamWriter"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_StreamWriter</code><span class="sig-paren">(</span>const char<em> *encoding</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *stream</em>, const char<em> *errors</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_StreamWriter" title="Permalink to this definition">¶</a></dt> <dd><p>Get a <a class="reference internal" href="../library/codecs.html#codecs.StreamWriter" title="codecs.StreamWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">StreamWriter</span></code></a> factory function for the given <em>encoding</em>.</p> </dd></dl> </div> <div class="section" id="registry-api-for-unicode-encoding-error-handlers"> <h2>Registry API for Unicode encoding error handlers<a class="headerlink" href="#registry-api-for-unicode-encoding-error-handlers" title="Permalink to this headline">¶</a></h2> <dl class="function"> <dt id="c.PyCodec_RegisterError"> int <code class="descname">PyCodec_RegisterError</code><span class="sig-paren">(</span>const char<em> *name</em>, <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *error</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_RegisterError" title="Permalink to this definition">¶</a></dt> <dd><p>Register the error handling callback function <em>error</em> under the given <em>name</em>. This callback function will be called by a codec when it encounters unencodable characters/undecodable bytes and <em>name</em> is specified as the error parameter in the call to the encode/decode function.</p> <p>The callback gets a single argument, an instance of <a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a>, <a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a> or <a class="reference internal" href="../library/exceptions.html#UnicodeTranslateError" title="UnicodeTranslateError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeTranslateError</span></code></a> that holds information about the problematic sequence of characters or bytes and their offset in the original string (see <a class="reference internal" href="exceptions.html#unicodeexceptions"><span class="std std-ref">Unicode Exception Objects</span></a> for functions to extract this information). The callback must either raise the given exception, or return a two-item tuple containing the replacement for the problematic sequence, and an integer giving the offset in the original string at which encoding/decoding should be resumed.</p> <p>Return <code class="docutils literal notranslate"><span class="pre">0</span></code> on success, <code class="docutils literal notranslate"><span class="pre">-1</span></code> on error.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_LookupError"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_LookupError</code><span class="sig-paren">(</span>const char<em> *name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_LookupError" title="Permalink to this definition">¶</a></dt> <dd><p>Lookup the error handling callback function registered under <em>name</em>. As a special case <em>NULL</em> can be passed, in which case the error handling callback for “strict” will be returned.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_StrictErrors"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_StrictErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_StrictErrors" title="Permalink to this definition">¶</a></dt> <dd><p>Raise <em>exc</em> as an exception.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_IgnoreErrors"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_IgnoreErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_IgnoreErrors" title="Permalink to this definition">¶</a></dt> <dd><p>Ignore the unicode error, skipping the faulty input.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_ReplaceErrors"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_ReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_ReplaceErrors" title="Permalink to this definition">¶</a></dt> <dd><p>Replace the unicode encode error with <code class="docutils literal notranslate"><span class="pre">?</span></code> or <code class="docutils literal notranslate"><span class="pre">U+FFFD</span></code>.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_XMLCharRefReplaceErrors"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_XMLCharRefReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_XMLCharRefReplaceErrors" title="Permalink to this definition">¶</a></dt> <dd><p>Replace the unicode encode error with XML character references.</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_BackslashReplaceErrors"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_BackslashReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_BackslashReplaceErrors" title="Permalink to this definition">¶</a></dt> <dd><p>Replace the unicode encode error with backslash escapes (<code class="docutils literal notranslate"><span class="pre">\x</span></code>, <code class="docutils literal notranslate"><span class="pre">\u</span></code> and <code class="docutils literal notranslate"><span class="pre">\U</span></code>).</p> </dd></dl> <dl class="function"> <dt id="c.PyCodec_NameReplaceErrors"> <a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a>* <code class="descname">PyCodec_NameReplaceErrors</code><span class="sig-paren">(</span><a class="reference internal" href="structures.html#c.PyObject" title="PyObject">PyObject</a><em> *exc</em><span class="sig-paren">)</span><a class="headerlink" href="#c.PyCodec_NameReplaceErrors" title="Permalink to this definition">¶</a></dt> <dd><p>Replace the unicode encode error with <code class="docutils literal notranslate"><span class="pre">\N{...}</span></code> escapes.</p> <div class="versionadded"> <p><span class="versionmodified">New in version 3.5.</span></p> </div> </dd></dl> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h3><a href="../contents.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Codec registry and support functions</a><ul> <li><a class="reference internal" href="#codec-lookup-api">Codec lookup API</a></li> <li><a class="reference internal" href="#registry-api-for-unicode-encoding-error-handlers">Registry API for Unicode encoding error handlers</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="reflection.html" title="previous chapter">Reflection</a></p> <h4>Next topic</h4> <p class="topless"><a href="abstract.html" title="next chapter">Abstract Objects Layer</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../bugs.html">Report a Bug</a></li> <li> <a href="https://github.com/python/cpython/blob/3.6/Doc/c-api/codec.rst" rel="nofollow">Show Source </a> </li> </ul> </div> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="abstract.html" title="Abstract Objects Layer" >next</a> |</li> <li class="right" > <a href="reflection.html" title="Reflection" >previous</a> |</li> <li><img src="../_static/py.png" alt="" style="vertical-align: middle; margin-top: -1px"/></li> <li><a href="https://www.python.org/">Python</a> »</li> <li> <a href="../index.html">3.6.7 Documentation</a> » </li> <li class="nav-item nav-item-1"><a href="index.html" >Python/C API Reference Manual</a> »</li> <li class="nav-item nav-item-2"><a href="utilities.html" >Utilities</a> »</li> <li class="right"> <div class="inline-search" style="display: none" role="search"> <form class="inline-search" action="../search.html" method="get"> <input placeholder="Quick search" type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> <script type="text/javascript">$('.inline-search').show(0);</script> | </li> </ul> </div> <div class="footer"> © <a href="../copyright.html">Copyright</a> 2001-2023, Python Software Foundation. <br /> The Python Software Foundation is a non-profit corporation. <a href="https://www.python.org/psf/donations/">Please donate.</a> <br /> Last updated on Dec 18, 2023. <a href="../bugs.html">Found a bug</a>? <br /> Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.7.6. </div> </body> </html>
Save
cmd:
run