mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 15:04:05 +08:00
1 line
11 KiB
HTML
1 line
11 KiB
HTML
<div class="body" role="main"><div class="section" id="module-stringprep"><h1><span class="yiyi-st" id="yiyi-10">6.6. <a class="reference internal" href="#module-stringprep" title="stringprep: String preparation, as per RFC 3453"><code class="xref py py-mod docutils literal"><span class="pre">stringprep</span></code></a> - Internet字符串准备</span></h1><p><span class="yiyi-st" id="yiyi-11"><strong>源代码:</strong> <a class="reference external" href="https://hg.python.org/cpython/file/3.5/Lib/stringprep.py">Lib / stringprep.py</a></span></p><p><span class="yiyi-st" id="yiyi-12">当在互联网上识别事物(例如主机名)时,通常需要比较这些识别“平等”。</span><span class="yiyi-st" id="yiyi-13">确切地,如何执行该比较可以取决于应用域,例如。</span><span class="yiyi-st" id="yiyi-14">是否应该不区分大小写。</span><span class="yiyi-st" id="yiyi-15">还可能需要限制可能的标识,以仅允许由“可打印”字符组成的标识。</span></p><p><span class="yiyi-st" id="yiyi-16"><span class="target" id="index-0"></span> <a class="rfc reference external" href="https://tools.ietf.org/html/rfc3454.html"><strong>RFC 3454</strong></a>定义了在互联网协议中“准备”Unicode字符串的过程。</span><span class="yiyi-st" id="yiyi-17">在将线传送到线上之前,它们用制备程序处理,之后它们具有一定的归一化形式。</span><span class="yiyi-st" id="yiyi-18">RFC定义了一组表,它们可以组合成概要文件。</span><span class="yiyi-st" id="yiyi-19">每个配置文件必须定义它使用哪些表,以及<code class="docutils literal"><span class="pre">stringprep</span></code>过程的其他可选部分是配置文件的一部分。</span><span class="yiyi-st" id="yiyi-20"><code class="docutils literal"><span class="pre">stringprep</span></code>配置文件的一个示例是<code class="docutils literal"><span class="pre">nameprep</span></code>,用于国际化的域名。</span></p><p><span class="yiyi-st" id="yiyi-21">模块<a class="reference internal" href="#module-stringprep" title="stringprep: String preparation, as per RFC 3453"><code class="xref py py-mod docutils literal"><span class="pre">stringprep</span></code></a>仅公开来自RFC 3454的表。</span><span class="yiyi-st" id="yiyi-22">由于这些表非常大以将它们表示为字典或列表,因此模块在内部使用Unicode字符数据库。</span><span class="yiyi-st" id="yiyi-23">模块源代码本身是使用<code class="docutils literal"><span class="pre">mkstringprep.py</span></code>实用程序生成的。</span></p><p><span class="yiyi-st" id="yiyi-24">因此,这些表作为函数公开,而不是作为数据结构。</span><span class="yiyi-st" id="yiyi-25">RFC中有两种类型的表:集合和映射。</span><span class="yiyi-st" id="yiyi-26">对于集合,<a class="reference internal" href="#module-stringprep" title="stringprep: String preparation, as per RFC 3453"><code class="xref py py-mod docutils literal"><span class="pre">stringprep</span></code></a>提供“特征函数”,即</span><span class="yiyi-st" id="yiyi-27">如果参数是集合的一部分,则返回true的函数。</span><span class="yiyi-st" id="yiyi-28">对于映射,它提供映射函数:给定键,它返回关联的值。</span><span class="yiyi-st" id="yiyi-29">下面是模块中所有可用功能的列表。</span></p><dl class="function"><dt id="stringprep.in_table_a1"><span class="yiyi-st" id="yiyi-30"><code class="descclassname">stringprep.</code><code class="descname">in_table_a1</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-31">确定<em>代码</em>是否在表A.1(Unicode 3.2中为未分配的代码点)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_b1"><span class="yiyi-st" id="yiyi-32"><code class="descclassname">stringprep.</code><code class="descname">in_table_b1</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-33">确定<em>代码</em>是否在表B.1(通常映射为无)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.map_table_b2"><span class="yiyi-st" id="yiyi-34"><code class="descclassname">stringprep.</code><code class="descname">map_table_b2</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-35">根据表B.2(映射用于NFKC的大小写折叠)返回<em>代码</em>的映射值。</span></p></dd></dl><dl class="function"><dt id="stringprep.map_table_b3"><span class="yiyi-st" id="yiyi-36"><code class="descclassname">stringprep.</code><code class="descname">map_table_b3</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-37">根据表B.3(用于没有归一化的情况下折叠的映射)返回<em>代码</em>的映射值。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c11"><span class="yiyi-st" id="yiyi-38"><code class="descclassname">stringprep.</code><code class="descname">in_table_c11</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-39">确定<em>代码</em>是否在表C.1.1(ASCII空格字符)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c12"><span class="yiyi-st" id="yiyi-40"><code class="descclassname">stringprep.</code><code class="descname">in_table_c12</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-41">确定<em>代码</em>是否在表C.1.2(非ASCII空格字符)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c11_c12"><span class="yiyi-st" id="yiyi-42"><code class="descclassname">stringprep.</code><code class="descname">in_table_c11_c12</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-43">确定<em>代码</em>是否在表C1(空间字符,C.1.1和C.1.2的共用体)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c21"><span class="yiyi-st" id="yiyi-44"><code class="descclassname">stringprep.</code><code class="descname">in_table_c21</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-45">确定<em>代码</em>是否在表C.2.1(ASCII控制字符)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c22"><span class="yiyi-st" id="yiyi-46"><code class="descclassname">stringprep.</code><code class="descname">in_table_c22</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-47">确定<em>代码</em>是否在表C.2.2(非ASCII控制字符)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c21_c22"><span class="yiyi-st" id="yiyi-48"><code class="descclassname">stringprep.</code><code class="descname">in_table_c21_c22</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-49">确定<em>代码</em>是否在表C.2(控制字符,C.2.1和C.2.2的共用体)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c3"><span class="yiyi-st" id="yiyi-50"><code class="descclassname">stringprep.</code><code class="descname">in_table_c3</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-51">确定<em>代码</em>是否在表C3(私人使用)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c4"><span class="yiyi-st" id="yiyi-52"><code class="descclassname">stringprep.</code><code class="descname">in_table_c4</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-53">确定<em>代码</em>是否在表C.4(非字符代码点)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c5"><span class="yiyi-st" id="yiyi-54"><code class="descclassname">stringprep.</code><code class="descname">in_table_c5</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-55">确定<em>代码</em>是否在表C5(代理代码)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c6"><span class="yiyi-st" id="yiyi-56"><code class="descclassname">stringprep.</code><code class="descname">in_table_c6</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-57">确定<em>代码</em>是否在表C.6中(不适用于纯文本)。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c7"><span class="yiyi-st" id="yiyi-58"><code class="descclassname">stringprep.</code><code class="descname">in_table_c7</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-59">确定<em>代码</em>是否在表C.7(不适用于规范表示)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c8"><span class="yiyi-st" id="yiyi-60"><code class="descclassname">stringprep.</code><code class="descname">in_table_c8</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-61">确定<em>代码</em>是否在表C.8(更改显示属性或已弃用)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_c9"><span class="yiyi-st" id="yiyi-62"><code class="descclassname">stringprep.</code><code class="descname">in_table_c9</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-63">确定<em>代码</em>是否在表C.9(标记字符)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_d1"><span class="yiyi-st" id="yiyi-64"><code class="descclassname">stringprep.</code><code class="descname">in_table_d1</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-65">确定<em>代码</em>是否在表D.1(具有双向属性“R”或“AL”的字符)中。</span></p></dd></dl><dl class="function"><dt id="stringprep.in_table_d2"><span class="yiyi-st" id="yiyi-66"><code class="descclassname">stringprep.</code><code class="descname">in_table_d2</code><span class="sig-paren">(</span><em>code</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-67">确定<em>代码</em>是否在表D.2(具有双向属性“L”的字符)中。</span></p></dd></dl></div></div> |