0

これは関連しています

UTF8 Unicodeの照合で同一文字としてカウントされる文字は何ですか? また、それらをマージするために使用できる VB.net 関数は何ですか?

これは私がこれを行う予定の方法です:

http://msdn.microsoft.com/en-us/library/dd374126%28v=vs.85%29.aspxを使用して文字列を

KD形。

基本的に、上付き文字などのほとんどのバリエーションを通常の数字に変換します。また、チルダとアクセントを 2 文字に分解します。

次のステップは、チルダまたはアクセント文字を唯一の目的とするすべての文字を削除することです。

どのキャラクターがそのようなものかをどうやって知ることができますか? どのキャラクターが単なる「合成キャラクター」ですか

そのようなキャラクターを見つけるにはどうすればよいですか?それらを見つけた後、どうすればそれを取り除くことができますか? 文字ごとにスキャンして、そのような「組み合わせ文字」をすべて削除する必要がありますか?

例: 300 から 362 までの文字を取り除くことができます。

じゃあ何?

4

2 に答える 2

3

結合文字は、ゼロ以外の Canonical_Combining_Class と(Mark, nonspacing)の General_Category を持つものとしてUnicodeData.txtにリストされています。Mn

于 2012-07-05T15:06:33.537 に答える
2

文字列内の各文字について、GetUnicodeCategory を呼び出し、 UnicodeCategoryで NonSpacingMark、SpacingCombiningMark、または EnclosingMarkチェックします。

正規表現を使用すると、より効率的に実行できる場合がありますRegex.Replace(str, "\p{M}", "")

于 2012-07-06T14:06:42.670 に答える