Python 中卡纳达语的 Unicode

问题描述 投票:0回答:4

我正在使用 Python 2.7 并输入以下代码:

print u'\u0cb5\u0ccd\u0c87'

由于我的 Unicode 字符串包含卡纳达语辅音“v”,后跟卡纳达语元音“i”,因此我希望输出是代表音节/akshara“vi”的单个卡纳达语字符,但我得到的是 ವ್ಇ。我该如何解决这个问题并获取“vi”的字符?

python unicode character-encoding
4个回答
3
投票

我相信您没有正确编码字符串。我希望这就是您想要的:

>>> print u'\u0cb5\u0CBF'
ವಿ

您所做的就是输出(使用 Unicode 分配给这些字符的全名):

  • 卡纳达语字母 VA
  • 卡纳达标志维拉玛
  • 卡纳达语字母 I

我可以看到其中的逻辑,但这不是 Unicode 的工作原理。 virama 应该仅用于辅音簇或者如果您有一个以辅音结尾的序列。要将音节与元音组合在一起,您必须将音节与元音的组合形式一起使用:

  • 卡纳达语字母 VA
  • 卡纳达语元音符号 I

卡纳达语元音符号 I 是字母“I”的组合形式,而卡纳达语字母 I 是同一字母的非组合形式。

我建议阅读Unicode 标准第 9 章,以获取有关如何处理南亚文字的完整说明。 第 10 章 也很有用。


1
投票

0cb5
Unicode 字符 'KANNADA LETTER VA' (U+0CB5) ವ 。所以Python打印ವ್ಇ是正确的。


1
投票

它应该打印卡纳达语字符 VA、VIRAMA,我根据这里的最新表格。


0
投票

如果您不使用带有卡纳达语符号的字体,您将得到方框。

在我的gentoo盒子上安装lohit-fonts后得到这个:

after fonts installed

© www.soinside.com 2019 - 2024. All rights reserved.