2010-10-13 8 views
5

Im geschriebenen Arabisch sehen Zeichen unterschiedlich aus, je nachdem, wo sie in einem Wort stehen. Zum Beispiel könnte der Buchstabe ta so aussehen: ث in einem Wort, aber wie folgt aussehen: ث Wenn es alleine steht. Ich habe einigen arabischen Text, zum Beispiel:Wie wird ein eigenständiges Unicode-Zeichen (Arabisch) gerendert, so wie es aussehen würde, wenn es in einem Wort gerendert würde?

string word = والتفويض ; 

Als ich word als ganzes Wort mache es richtig macht. Jetzt möchte ich die Zeichenkette analysieren und jeden Buchstaben einzeln ausdrucken. Allerdings, wenn ich dies tun:

foreach(char c in word.ToCharArray()) 
{ 
    Debug.Print(c.ToString()); 
} 

Die char c nicht aus der ursprünglichen Darstellung des Briefes nicht gedruckt werden, wie es im Rahmen eines Wortes gemacht wurde, sondern es gibt die gleichen arabischen Buchstaben aus, als ob es von sich selbst gemacht. Wie kann ich meinen arabischen Text analysieren, so dass die zurückgegebenen Buchstaben genauso aussehen, als wenn sie als ganzes Wort angezeigt würden?

Ich versuche, dies in C# zu tun.

Antwort

4

Es gibt Zeichen im UCS, die bestimmte Formen von arabischen Zeichen darstellen. Diese funktionieren jedoch nicht gut, wenn Sie von einem Kontext zum anderen wechseln.

Im Allgemeinen, wenn Sie angeben möchten, dass ein Brief mit einem anderen verbunden ist, sollten Sie U + 200D ZERO WIDTH JOINER an der entsprechenden Stelle (vor dem Zeichen, um den zu platzieren) verwenden Schreiner nach rechts, nach dem Zeichen nach links zu platzieren oder zu beiden Seiten besitzen.

umgekehrt U + 200C ZERO WIDTH NON-jOINER zwischen Zeichen Platzierung brechen ihre Verbindungs.

wie Nun, das in der Praxis funktioniert, hängt davon ab, ob die Rendering-Engine die Zeichen verarbeitet

Verwandte Themen