这与
有关我打算这样做:
使用http://msdn.microsoft.com/en-us/library/dd374126%28v=vs.85%29.aspx将字符串转换为
KD表格。
基本上它会将大多数变体(如上标)转换为正常数字。它还将tilda和重音分解为2个字符。
下一步是删除所有字符,其唯一目的是修饰或强调字符。
我如何知道哪些字符是这样的?哪些字符只是“组成字符”
我如何找到这样的角色?找到后,我该如何摆脱它?我应该逐个字符地扫描并删除所有这样的“组合字符吗?”
例如: 从300到362的角色可以摆脱。
然后是什么?
答案 0 :(得分:3)
组合字符在UnicodeData.txt中列为具有非零Canonical_Combining_Class,以及General_Category为Mn
(Mark,nonspacing)。
答案 1 :(得分:2)
对于字符串中的每个字符,请调用GetUnicodeCategory并检查UnicodeCategory是否存在NonSpacingMark,SpacingCombiningMark或EnclosingMark。
您可以使用正则表达式更有效地执行此操作,例如Regex.Replace(str, "\p{M}", "")
。