3

我正在尝试将韩语字符串分割成单个音节。所以输入将是一个类似“서울특별시”的字符串,结果是“서”、“울”、“특”、“별”、“시”。我曾尝试使用 C++ 和 Python 来分割字符串,但结果是一系列?或空格(但字符串本身可以在屏幕上正确打印)。在 c++ 中,我首先将输入字符串初始化为string korean="서울특별시",然后使用 astring::iterator遍历字符串并打印每个单独的组件。在 Python 中,我刚刚使用了一个简单的for循环。

我想知道是否有解决此问题的方法。谢谢。

4

1 回答 1

1

我根本不懂韩语,也无法评论音节的划分,但在 Python 2 中,以下工作:

# -*- coding: utf-8 -*- 
print(repr(u"서울특별시"))
print(repr(u"서울특별시"[0]))

输出:

u'\uc11c\uc6b8\ud2b9\ubcc4\uc2dc'
u'\uc11c'

在 Python 3 中,您不需要ufor Unicode 字符串。

输出是字符串中字符的 unicode 值,这意味着在这种情况下字符串已被正确切割。我打印它们的原因repr是我使用的终端中的字体不能代表它们,所以没有repr我只能看到方形框。但这纯粹是一个渲染问题,repr证明数据是正确的。

因此,如果您在逻辑上知道如何识别音节,那么您可以使用它repr来查看您的代码实际做了什么。Unicode NFC 听起来像是实际识别它们的好选择(感谢 R. Martinho Fernandes),并且unicodedata.normalize()是获得它的方法。

于 2013-01-31T11:25:37.407 回答