GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • unicodedata --- Unicode 資料庫
  • readline --- GNU readline 介面
  • 回報錯誤
  • 改進此頁面
  • 顯示原始碼
  • 顯示翻譯原始碼
  • 索引
  • 模組
  • Python
  • 3.15.2 documentation
  • Python 標準函式庫 (Standard Library)
  • 文本處理 (Text Processing) 服務
  • stringprep --- 網際網路字串的準備

This view

  • Original page
  • New address

GeezerVison is showing python.github.io — stringprep --- 網際網路字串的準備 — Python 3.15.2 說明文件

stringprep --- 網際網路字串的準備¶

原始碼:Lib/stringprep.py


在網際網路上識別事物(例如主機名稱)時,通常需要比較這些識別器的「相等性 (equality)」。比較的具體執行方式可能取決於應用程式領域,例如是否應該不區分大小寫。也可能有必要限制可能的識別器,只允許由「可列印 (printable)」字元組成的識別器。

RFC 3454 定義了在網際網路通訊協定中「準備」Unicode 字串的程序。在傳送字串到網路之前,先使用準備程序處理字串,之後字串就具有特定的規範化 (normalized) 形式。RFC 定義了一系列的表,這些表可以組合成設定檔 (profile)。每個設定檔必須定義它使用哪些表以及 stringprep 程序的哪些其他可選部分是設定檔的一部分。stringprep 配置文件的一個例子是 nameprep,它被用於國際化網域名稱。

stringprep 模組只開放 RFC 3454 中的表。由於這些表如果以字典或串列的方式來表示的話會非常大,因此模組內部使用 Unicode 字元資料庫。模組原始碼本身是使用 mkstringprep.py 工具來產生的。

因此,這些表是以函式而非資料結構的形式呈現。RFC 中有兩種表:集合 (sets) 和對映 (mappings)。對於集合,stringprep 提供了「特徵函式 (characteristic function)」,也就是如果參數是集合的一部分就回傳 True 的函式。對於對映,它提供了對映函式:給定鍵,它會回傳相關的值。以下是模組中所有可用函式的清單。

stringprep.in_table_a1(code)¶

判斷 code 是否在 tableA.1(Unicode 3.2 中未指定的編碼位置 (code point))中。

stringprep.in_table_b1(code)¶

判斷 code 是否在 tableB.1(通常沒有對映到任何東西)中。

stringprep.map_table_b2(code)¶

根據 tableB.2(使用 NFKC 形式的大小寫折疊 (case-folding) 對映)回傳 code 的對映值。

stringprep.map_table_b3(code)¶

根據 tableB.3(使用沒有規範化的大小寫折疊對映)回傳 code 的對映值。

stringprep.in_table_c11(code)¶

判斷 code 是否在 tableC.1.1(ASCII 空格字元)中。

stringprep.in_table_c12(code)¶

判斷 code 是否在 tableC.1.2(非 ASCII 空格字元)中。

stringprep.in_table_c11_c12(code)¶

判斷 code 是否在 tableC.1(空格字元,為 C.1.1 和 C.1.2 的聯集)中。

stringprep.in_table_c21(code)¶

判斷 code 是否在 tableC.2.1(ASCII 控制字元)中。

stringprep.in_table_c22(code)¶

判斷 code 是否在 tableC.2.2(非 ASCII 控制字元)中。

stringprep.in_table_c21_c22(code)¶

判斷 code 是否在 tableC.2(控制字元,為 C.2.1 和 C.2.2 的聯集)中。

stringprep.in_table_c3(code)¶

判斷 code 是否在 tableC.3(私有使用)中。

stringprep.in_table_c4(code)¶

判斷 code 是否在 tableC.4(非字元編碼位置)中。

stringprep.in_table_c5(code)¶

判斷 code 是否在 tableC.5(代理碼)中。

stringprep.in_table_c6(code)¶

判斷 code 是否在 tableC.6(不適用於純文字)中。

stringprep.in_table_c7(code)¶

判斷 code 是否在 tableC.7(不適用於規範表示法 (canonical representation))中。

stringprep.in_table_c8(code)¶

判斷 code 是否在 tableC.8(變更顯示屬性或已棄用)中。

stringprep.in_table_c9(code)¶

判斷 code 是否在 tableC.9(標記字元 (tagging characters))中。

stringprep.in_table_d1(code)¶

判斷 code 是否在 tableD.1(具有雙向屬性 "R" 或 "AL" 的字元)中。

stringprep.in_table_d2(code)¶

判斷 code 是否在 tableD.2(具有雙向屬性 "L" 的字元)中。

© 版權所有 2001 Python Software Foundation.
此頁面採用 Python 軟體基金會授權條款第 2 版。
文件中的範例、應用技巧與其他程式碼額外採用了 Zero Clause BSD 授權條款。
更多訊息請見歷史與授權條款。

Python 軟體基金會是一家非營利法人。 敬請捐贈。

最後更新於 11月 11, 2026 (06:44 UTC)。 發現 bug?
以 Sphinx8.2.3建立。
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.