Преобразование китайских кодовых точек Unicode в строки, используя Python - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть файл, содержащий кодовые точки Unicode для 8105 китайских символов из здесь , похожий на

U+516D
U+4E03
U+516B

Я понимаю, что они представляют собой следующие китайские символы

六 [Chinese character for 'six', Reference http://hanzidb.org/character/%E5%85%AD]
七 [Chinese character for 'seven', Reference http://hanzidb.org/character/%E4%B8%83]
八 [Chinese character for 'eight', Reference http://hanzidb.org/character/%E5%85%AB]

Как преобразовать файл, содержащий строки U+516D, U+4E03, U+516B, в соответствующие китайские символы, используя Python 3?

Любая помощь будет оценена.

Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Это регулярное выражение преобразует текст в формате U+hhhh (4-6 шестнадцатеричных символов) в соответствующую ему кодовую точку Unicode:

import re

s = 'U+516D U+4E03 U+516B'

s = re.sub(r'U\+([0-9A-F]{4,6})',lambda m: chr(int(m.group(1),16)),s)
print(s)

Вывод:

六 七 八
1 голос
/ 13 февраля 2020
def get_character(string):
    return chr(int(string[2:], 16))
>>> get_character("U+4E03")
'七'
>>> get_character("U+516D")
'六'
>>> get_character("U+4E03")
'七'
>>> get_character("U+516B")
'八'

Это самый простой из известных мне методов, обратите внимание, что он не проверяет правильный формат, просто отсекает первые 2 символа в предположении U+

...