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

Jon*_*ler 5 ocr encoding text utf cjk

我想从对日语文本进行 OCR 识别后收到的字符串中转换数字。

例如,当我提取日期时:

?? ? ? ? ?? ?
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

31 ? 12 ? 13 ?
Run Code Online (Sandbox Code Playgroud)

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

akk*_*kky 4

我会使用unicodedata

\n\n
import unicodedata\nprint(unicodedata.normalize("NFKC","\xe2\x91\xa2\xe2\x91\xa0 \xe5\xb9\xb4 \xe2\x91\xab \xe6\x9c\x88 \xe2\x91\xa0\xe2\x91\xa2 \xe6\x97\xa5"))\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果是这样的,

\n\n
31 \xe5\xb9\xb4 12 \xe6\x9c\x88 13 \xe6\x97\xa5\n
Run Code Online (Sandbox Code Playgroud)\n\n

这也可以转换日语数字的其他变体,即全角数字。

\n\n
import unicodedata\nprint(unicodedata.normalize("NFKC","123\xe2\x91\xa0\xe2\x91\xa1\xe2\x91\xa2\xef\xbc\x91\xef\xbc\x92\xef\xbc\x93"))\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
123123123\n
Run Code Online (Sandbox Code Playgroud)\n

  • 在 Javascript 中,它将是: `"③① 年 ⑫ 月 ①③ 日".normalize ('NFKC')` 使用 [normalize()](https://developer.mozilla.org/en-US/docs/Web/JavaScript /参考/Global_Objects/字符串/标准化) (2认同)
  • 在 Java 中,它是: `Normalizer.normalize("③①年 ⑫月 ①③日", Normalizer.Form.NFKC)` 参见 https://docs.oracle.com/javase/tutorial/i18n/text/normalizerapi.html (2认同)