如何将带圆圈的数字转换为数字? (①至1)

时间:2019-02-21 03:17:22

标签: text encoding ocr utf cjk

我想将OCR识别后的字符串转换为日语文本。

例如,当我提取日期时:

③① 年 ⑫ 月 ①③ 日

我想将其转换为:

31 年 12 月 13 日

实现它的最好方法是什么?

2 个答案:

答案 0 :(得分:2)

假设您已经在问题中带圆圈的数字上加上了OCR文本,则简单的文本替换就足够了。使用Python的方法如下:

def uncircle(s):
    for i in range(1, 21):
        s = s.replace(chr(0x245f + i), str(i))
    return s.replace('\u24ea', '0')

带圆圈的数字1到20是Unicode代码点0x2460到0x2473,带圆圈的数字0是Unicode代码点0x24ea。

答案 1 :(得分:2)

我会使用unicodedata

import unicodedata
print(unicodedata.normalize("NFKC","③① 年 ⑫ 月 ①③ 日"))

结果是这样

31 年 12 月 13 日

这还将转换日语数字的其他变体,即全角数字。

import unicodedata
print(unicodedata.normalize("NFKC","123①②③123"))

123123123