Python Internet字符串准备
为了识别互联网中的不同事物,有必要比较不同的身份以确保平等。比较过程取决于应用程序域。例如,有些东西不区分大小写,等等。为了检查这类信息,使用了stringprep。
RFC3454定义了在通过有线传输之前准备Unicode字符串的过程。经过准备过程后,它们具有一定的标准化形式。
RFC定义了一组表。这些表可以合并为配置文件。例如,有一个stringprep的配置文件是nameprep。在nameprep中,有国际化域名
有两种表,set和mappings。如果集合表中存在一个字符,它将返回true,否则返回false。对于映射表,当传递键时,它将返回关联的值。
要使用此模块,我们需要在代码中导入stringprep模块。
import stringprep
字符串准备表是-
stringprep.in_table_a1(代码)
它是Unicode3.2中的未签名代码点
stringprep.in_table_b1(代码)
它通常没有映射。
stringprep.in_table_b2(代码)
将代码的映射值返回表B.2。NFKC案例折叠的映射。
stringprep.in_table_b3(代码)
没有规范化的情况下映射案例折叠。
stringprep.in_table_c11(代码)
ASCII空格字符
stringprep.in_table_c12(代码)
非ASCII空格字符
stringprep.in_table_c11_c12(代码)
ASCII和非ASCII空格字符的组合
stringprep.in_table_c21(代码)
ASCII控制字符
stringprep.in_table_c22(代码)
非ASCII控制字符
stringprep.in_table_c21_c22(代码)
ASCII和非ASCII控制字符的组合
stringprep.in_table_c3(代码)
私人字符
stringprep.in_table_c4(代码)
非字符代码点
stringprep.in_table_c5(代码)
替代代码
stringprep.in_table_c6(代码)
不适合纯文字字元
stringprep.in_table_c7(代码)
不适合规范表示
stringprep.in_table_c8(代码)
显示属性更改代码
stringprep.in_table_c9(代码)
标记字符
stringprep.in_table_d1(代码)
具有“R”和“AL”双向属性的字符。
stringprep.in_table_d2(代码)
具有“L”双向属性的字符。
范例程式码
import stringprep as sp print('\u0020') #The space character print(sp.in_table_c11('\u0020')) #It is inside the ASCII space characters print(sp.in_table_d2('L')) #Letter L has bidirectional property from left to right print(sp.in_table_d1('L')) #Letter L has no bidirectional property for right to left
输出结果
True True False