アルフベルタンイーンを通常のアルフに交換する方法
3 に答える
C#はわかりませんが、それはUNICODEの質問です。この関数を使用して、 UNICODE正規化によってそれを行います。
まず、分解された形に正規化します。次に、「Mark、Nonspacing」カテゴリ[Mn]からすべての文字を除外します。最後に、正規化して構成された形式に戻します。
私が正しく見れば、あなたのグリフはUNICODEでARABIC LETTER ALEF WITH HAMZA ABOVE
(U + 0623、[Lo])の後にARABIC FATHATAN
(U + 064B、[Mn])で表されます。最初の文字はARABIC LETTER ALEF
(U + 0627、[Lo])+ ARABIC HAMZA ABOVE
(U + 0654、[Mn])に分解されます。
変換のチェーンは次のとおりです(最初の矢印は分解を示し、2番目は非スペーシングマークを除外し、3番目は合成を示します):
U+0623 + U+064B → U+0627 + U+0654 + U+064B → U+0627 → U+0627
分解し、[Mn]カテゴリからすべての文字を削除し、元に戻すと、残りはARABIC LETTER ALEF
1つだけになります。
文字列内のUnicode文字を置き換える方法の例を提供するこのプロジェクトを見てください:http://www.codeproject.com/KB/string/FontGlyphSet.aspx
参照:
数分の検索の後のBoloの啓発のおかげで、私はそのようにそれをしました:
string s = "";
foreach (Char c in x)
{
if (((int)c).ToString("x").ToLower() != "64b")
s += c.ToString();
}
ここで、xは私の文字列です
そのように私は文字列からアラビア語のファタタンを除外しました