字符串中的unicode控制符

Unicode控制字符

Unicode控制字符(英语:Unicode control characters)是用于控制文本解释或者显示,而不可见不占空间的Unicode字符(零宽字符)

为了简化几种换行字符,Unicode引入了它自己的分隔符来格式化文本:

U+2028 line separator ,HTML:
,LSEP
    char(8232)  \u2028
    
U+2029 paragraph separator ,HTML:
,PSEP
    char(8233)  \u2029

实例:

d = "进
出口中心"
s = "进出口中心"

print(d == s) # False

#  d 里面有个 U+2029 Paragraph Separator

Unicode 有 NFKCNFKDNFCNFD 四种正规形式

Unicode等价性

正规形式
NFD  
Normalization Form Canonical Decomposition 以标准等价方式来分解
NFC  
Normalization Form Canonical Composition 以标准等价方式来分解,然后以标准等价重组之。若是singleton的话,重组结果有可能和分解前不同
NFKD  
Normalization Form Compatibility Decomposition 以兼容等价方式来分解
NFKC  
Normalization Form Compatibility Composition 以兼容等价方式来分解,然后以标准等价重组之

因正规化不同而导致的错误

当两个应用程序分享统一码资料,但却使用不同正规形式时,就有可能导致错误。
例如,Mac OS X有许多对象是只能使用分解字符(因此,以UTF-8为编码又限定分解形式的统一码又被称为"UTF8-MAC")。
在一特例中,OS X错误处理用途而产生的组合字符和Samba文件和打印分享软件(在复制文件时,会将分解过的字母替换成组合过的字母)混合使用时,
会导致混淆和损坏资料。[3][4]应用程序若要避免此类问题,可以保留输入码点,然后只在程序内部使用自己的正规化形式。
Buy me a 肥仔水!