【发布时间】:2021-04-21 05:21:37
【问题描述】:
我已将 OCR 检测为 ¾、½、¼ 等文本。我试图将 ¾ 中的值分隔为 3 和 4。 ¾ 被读取为 unicode。在转换为字符串时,确切的值会随着不需要的字符而变化。请提出解决此问题的方法。
【问题讨论】:
-
向我们展示您尝试过的一些输入和输出的示例代码
标签: python unicode python-unicode
我已将 OCR 检测为 ¾、½、¼ 等文本。我试图将 ¾ 中的值分隔为 3 和 4。 ¾ 被读取为 unicode。在转换为字符串时,确切的值会随着不需要的字符而变化。请提出解决此问题的方法。
【问题讨论】:
标签: python unicode python-unicode
如下使用Unicode Normalization Forms:
import unicodedata
print('NFKD')
print(unicodedata.normalize('NFKD', '¾,½,¼')) # Fraction Slash
print(unicodedata.normalize('NFKD', '¾,½,¼').replace('⁄','/')) # Solidus
print('NFKC')
print(unicodedata.normalize('NFKC', '¾,½,¼'))
print(unicodedata.normalize('NFKC', '¾,½,¼').replace('⁄','/'))
输出:.\SO\67189705.py
NFKD
3⁄4,1⁄2,1⁄4
3/4,1/2,1/4
NFKC
3⁄4,1⁄2,1⁄4
3/4,1/2,1/4
Form Description —————————————————————————————————————————— Normalization Form D (NFD) Canonical Decomposition Normalization Form C (NFC) Canonical Decomposition, followed by Canonical Composition Normalization Form KD (NFKD) Compatibility Decomposition Normalization Form KC (NFKC) Compatibility Decomposition, followed by Canonical Composition
【讨论】: