gpt4 book ai didi

python - Python 中 Unicode 字符的显示问题(组合字符、假名字符等)

转载 作者:行者123 更新时间:2023-12-05 06:23:23 25 4
gpt4 key购买 nike

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

最佳答案

您可以将组合重音规范化为组合形式,例如 NFC:

>>> from unicodedata import normalize
>>> char = 'a'
>>> accent = '\u0301'
>>> normalize("NFC", char + accent)
'á' # this is a length 1 string

就 ā́ 而言,我认为它在 Python 中的最短长度是 2 ('\u0101\u0301'),由终端仿真器正确组合字形渲染时的字母和重音。

至于您提到的日文字符无法正确呈现的问题(系统无法正确显示字符时出现的问号框)这不是编程或编码的问题,您只需要安装适当的字形和字体。在 Linux 上我使用 GNU Unifont , 我不确定在 Windows 10 上使用什么。

关于python - Python 中 Unicode 字符的显示问题(组合字符、假名字符等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58420234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com