Python 网络字符串准备


为了识别互联网上的不同事物,有必要比较不同的标识符是否相等。比较过程取决于应用领域。例如,某些事物不区分大小写等。要检查这些信息,可以使用stringprep

RFC 3454 定义了在通过网络传输之前准备 Unicode 字符串的过程。经过准备过程后,它们具有特定的规范化形式。

RFC 定义了一组表格;这些表格可以组合成配置文件。例如,stringprep 的一个配置文件是nameprep。在nameprep中,有国际化域名。

有两种表格,集合映射。如果一个字符存在于集合表格中,则返回 true,否则返回 false。对于映射表格,当传递键时,它将返回关联的值。

要使用此模块,我们需要在代码中导入stringprep模块。

import stringprep

stringprep 表格如下:

序号 表格及描述
1

stringprep.in_table_a1(code)

它是 Unicode 3.2 中的无符号代码点。

2

stringprep.in_table_b1(code)

它通常映射为空。

3

stringprep.in_table_b2(code)

返回代码到表 B.2 的映射值。NFKC 大小写折叠的映射。

4

stringprep.in_table_b3(code)

不进行规范化的大小写折叠映射。

5

stringprep.in_table_c11(code)

ASCII 空格字符

6

stringprep.in_table_c12(code)

非 ASCII 空格字符

7

stringprep.in_table_c11_c12(code)

ASCII 和非 ASCII 空格字符的组合

8

stringprep.in_table_c21(code)

ASCII 控制字符

9

stringprep.in_table_c22(code)

非 ASCII 控制字符

10

stringprep.in_table_c21_c22(code)

ASCII 和非 ASCII 控制字符的组合

11

stringprep.in_table_c3(code)

供私用字符

12

stringprep.in_table_c4(code)

非字符代码点

13

stringprep.in_table_c5(code)

代理代码

14

stringprep.in_table_c6(code)

不适合纯文本字符

15

stringprep.in_table_c7(code)

不适合规范表示

16

stringprep.in_table_c8(code)

显示属性更改代码

17

stringprep.in_table_c9(code)

标记字符

18

stringprep.in_table_d1(code)

具有“R”和“AL”双向属性的字符。

19

stringprep.in_table_d2(code)

具有“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

更新于: 2019-07-30

270 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.