Wie die alf bel tanween mit einem normalen alf an diesem ProjektArabisch Problem ersetzen أ mit nur ا
Antwort
Dank Bolo des Erleuchtungs nach ein paar Minuten des Suchens ich habe es wie folgt aus:
string s = "";
foreach (Char c in x)
{
if (((int)c).ToString("x").ToLower() != "64b")
s += c.ToString();
}
wo x mein String
, dass ich ausgeschlossen die ARABISCHE Fathatan aus die Zeichenkette
Werfen Sie einen Blick ersetzen, die Beispiele liefert, wie Unicode-Zeichen in Zeichenketten ersetzen: http://www.codeproject.com/KB/string/FontGlyphSet.aspx
Siehe auch :
Ich weiß nicht C#, aber das ist mehr eine UNICODE Frage. Ich würde es mittels UNICODE normalization, unter Verwendung this function tun.
Zuerst normalisieren, zerlegt Form. Als nächstes filtern Sie alle Zeichen aus der Kategorie "Mark, Nonspacing" [Mn]. Zum Schluss normalisieren Sie sich wieder auf das Formular.
Wenn ich sehe, richtig, wird Ihr Glyphe in UNICODE vertreten durch ARABIC LETTER ALEF WITH HAMZA ABOVE
(U+0623, [Lo]), gefolgt von ARABIC FATHATAN
(U+064B, [Mn]). Das erste Zeichen zersetzt zu ARABIC LETTER ALEF
(U+0627, [Lo]) + ARABIC HAMZA ABOVE
(U+0654, [Mn]).
Hier ist die Kette von Transformationen (der erste Pfeil zeigt eine Zersetzung, die zweite - Ausfiltern Marken Ohne Zwischenraum, der dritte - eine Komposition):
U+0623 + U+064B → U+0627 + U+0654 + U+064B → U+0627 → U+0627
Nachdem Sie zersetzen, entfernen Sie alle Zeichen aus dem [Mn] Kategorie, und komponieren zurück, Sie sind nur mit ARABIC LETTER ALEF
übrig.
Ich verwende diese Methode, um diakritische Zeichen aus lateinischen Buchstaben zu entfernen. Als nächstes muss ich ein paar Ausnahmen behandeln, wie "£", aber die beschriebene Methode deckt die meisten Fälle ab. – Bolo
Irgendwelche Gründe dafür, eine Regex dafür zu benutzen? –
Vielleicht möchten Sie zusätzliche kontextbezogene Informationen bereitstellen, z. B. wie Sie die Zeichenfolge speichern usw. –