将包含转义组合变音标记(如“Fu\u0308rst”)的 Delphi XE AnsiString 转换为友好的 WideString“Fürst”的最佳方法是什么?
我知道这并不总是适用于所有组合,但应该支持常见的拉丁语块,而无需自己构建愚蠢的转换表。我想解决方案可以在新的角色单元中找到,但我不明白。
我认为你需要表现Unicode 标准化。 http://en.wikipedia.org/wiki/Unicode_equivalence在你的绳子上。
我不知道 Delphi XE RTL 中是否有特定的调用来执行此操作,但是 WinAPI 调用规范化字符串 http://msdn.microsoft.com/en-us/library/dd319093%28VS.85%29.aspx使用 NormalizationKC 模式应该可以帮助您:
正常化
Unicode 规范化形式 KC,兼容性组合。变换
每个碱基加上组合字符
规范的预合成等价物
以及所有兼容字符
他们的等价物。例如,连字 fi 变为 f + i;类似地,A + ¡ + fi + n 变为 ä + f + i + n。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)