2013-04-02 2 views
2

J'ai été stocké dans un problème étrange J'ai une zone de texte et j'essaye de lire le texte. Mais lorsque la zone de texte contient à la fois du texte arabe et anglais, il semble que le texte est mélangé. Voici comment je l'ai lu mon texte de zone de texte:Le texte arabe/anglais étant mélangé

string temp = input.Text; 

Ce texte est que je suis l'insertion, dans zone de texte:

باهم et anglais متن فارسی

Et voici le texte que je reçois de la zone de texte:

et anglais باهم

+0

Où voyez-vous le texte mélangé? – Oded

Répondre

0

Ajouter un caractère RLE au début du texte.

const char RightToLeftEmbedding = (char)0x202B; 
0

L'arabe est une langue de droite à gauche. L'anglais est de gauche à droite. Donc, cela est correct - l'arabe sur l'écran sera dans l'ordre inverse (la position de la chaîne 0 sera à l'extrême droite).

+0

Cela dépend des caractères de contrôle bidi incorporés. – Oded

0

Ce n'est probablement pas un problème avec ASP.NET, mais avec le code HTML qu'il affiche.

Inspectez les éléments HTML dans le navigateur et vérifiez la propriété "direction" dans le style calculé. Si la langue principale de votre boîte de saisie est l'arabe ou le persan, elle devrait être "rtl", et si elle est en anglais, elle devrait être "ltr". Si c'est l'inverse, vous devez l'ajuster en utilisant l'attribut dir approprié sur les éléments HTML.

Ceci ne l'ajuste que pour l'interface utilisateur. Le texte est probablement sauvegardé dans votre base de données non avec la bonne direction, mais cela peut être bien, car la base de données est interne et généralement pas vu par les utilisateurs.

Questions connexes