0

我希望能够说“通过强制变音符号进入它们的组合形式来规范化这个字符串”。

详细信息:
我的代码是用 C# 开发的,但我认为问题不是特定于语言的。

我的数据有两个问题(1)变音符号在此数据中的基本字符之前(它需要跟随在 Unicode 形式 D 或 KD 中的基本字符)。(2) 我的数据中的重音变音符号是希腊语 Tonos (U+0384) 但需要组合形式 (U+0301) 才能标准化。

我想以编程方式执行此操作。我认为这种类型的操作应该是众所周知的,但我没有在 C# Globalization 方法中找到支持(有规范化方法,但没有办法将变音符号强制转换为它们的组合形式)。

4

1 回答 1

1

我不认为 C# 全球化方法可以帮助你。您指出的问题是 U+0384 不是组合字符。它本身就是一个角色。这也可以从兼容性分解(To U+0020 U+0301)中看出。数据集很可能来自将音调显示为下一个字符的变音符号的来源。根据 unicode 规范,这不是“正确的”。因此,您必须自己转换数据。我遇到了与撇号类似的问题;有时应用程序会使用正确的引号。

数据转换并不难,我相信您可以编写代码。我会有一个有状态的转换器并通过流式传输数据。当 U+0384 被检测到时,它不会被消除。你坚持到“tonos”状态并在 NEXT 字符之后发出 U+0301 。这些是要处理的错误条件(U+0384 运行,数据结束处于“tonos”状态)。这些数据可以使用常用的 API 进行标准化。祝你好运。

于 2010-08-23T19:21:48.470 回答