2013-04-02 3 views
2

이상한 문제가 있습니다. 텍스트 상자가 있는데이 텍스트를 읽으려고합니다. 그러나 텍스트 상자에 아랍어와 영어 텍스트가 모두 포함되어 있으면 텍스트가 섞여있는 것처럼 보입니다. 이것은 내가 텍스트 상자에서 내 텍스트를 읽을 방법은 다음과 같습니다아랍어/영어 텍스트가 섞여 있습니다.

string temp = input.Text; 

이 내가 텍스트 상자에 삽입하고 텍스트입니다 :

باهم 및 영어 متن فارسی

그리고 이것은 텍스트입니다 그 텍스트 상자에서 얻을 :

متن فارسی 및 영어 باهم

+0

어디에서 섞은 텍스트가 보입니까? – Oded

답변

0

텍스트의 시작 부분에 RLE char을 추가하십시오.

const char RightToLeftEmbedding = (char)0x202B; 
0

아랍어는 오른쪽에서 왼쪽으로 쓰는 언어입니다. 영어는 왼쪽에서 오른쪽입니다. 그래서 실제로 맞습니다. 화면의 아랍어가 반대 순서로 나타납니다 (문자열 위치 0은 맨 오른쪽에 있습니다).

+0

내장 된 양방향 조절 문자에 따라 다릅니다. – Oded

0

아마도 ASP.NET에서는 문제가되지 않지만 출력되는 HTML은 문제가 아닙니다.

브라우저에서 HTML 요소를 검사하고 계산 된 스타일의 "direction"속성을 확인하십시오. 입력란의 주요 언어가 아랍어 또는 페르시아어 인 경우 "rtl"이어야하고 영어 인 경우 "ltr"이어야합니다. 다른 방법이라면 HTML 요소에 적절한 dir 특성을 사용하여 조정해야합니다.

사용자 인터페이스에 대해서만 조정합니다. 텍스트는 올바른 방향이 아닌 데이터베이스에 저장되어있을 수도 있지만 데이터베이스가 내부적이며 일반적으로 사용자에게 표시되지 않기 때문에 괜찮을 수도 있습니다.

관련 문제