在Python中显示Unicode字符(合并字符,假名字符等)的问题

问题描述 投票:1回答:1

我正在尝试编写一些程序来处理几种语言的文本分析,包括拉丁语,古希腊语和普通话。其中一个词意在分析拉丁文中的一个单词并将其分解成其组成的音节,然后找出哪个音节被重读,并在该音节的元音中添加一个重音符号。对于长元音(例如“ā”),这要求使用组合的重音符号“ ́”来产生“ā”。但是,当我将要合并的重音符号('\ u0301')的unicode值放在要添加字符的字符串后的字符串中时,它不会像打印字符串时那样合并字符,而是将其放在下一个字符上彼此分开。另外,当我尝试显示非西文Unicode字符(例如日语的平假名或片假名或CJK统一表意文字)时,我得到的只是系统无法正确显示字符时出现的问号。我在将字符或CJK Unified Ideographs elswhere组合在一起时没有这些问题,例如,它们在Google Chrome或Microsoft Word中工作得很好。我正在装有Windows 10的64位笔记本电脑上运行Python3。此外,如果它们与Sqlite3一起出现,如何处理这些问题?

python python-3.x unicode utf-8 python-unicode
1个回答
0
投票

您可以将其标准化为组合形式,例如NFC:

>>> from unicodedata import normalize
>>> char = 'a'
>>> accent = '\u0301'
>>> normalize("NFC", char + accent)
'á'
© www.soinside.com 2019 - 2024. All rights reserved.