2012-02-14 1 views
0

페르시아어 및 영어 문자를 비롯하여 모든 언어를 포함하는 내 DataGridview 셀에 문자열을 인쇄하려고합니다. 이 값을 지정된 셀에 인쇄하면 형식이 잘못되었습니다.Datagridview 페르시아어 서식

screenshot

+0

문화 또는 UTF-8 인코딩 또는 둘 다를 살펴보고 싶을 것입니다. – MethodMan

+0

나에게 링크 나 sth을 주시겠습니까 ?? 나는 이미 내 양식의 onLoad를 설정했다 : InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture (new System.Globalization.CultureInfo ("fa")); – Ehsan

+0

여기 CodeProject의 DataGridView Printer Class 예제에서 체크 아웃 할 수 있습니다. http://www.codeproject.com/Articles/13678/The-DataGridViewPrinter-Class – MethodMan

답변

0

내가 페르시아어는 오른쪽에서 왼쪽으로 읽 겠지 : 여기

는 그림인가? 우리는 히브리어 번역에서 많은 문제를 겪고 있습니다!

두 언어를 사용할 컨트롤에서 RightToLeft 속성을 Yes으로 설정하는 것이 좋습니다.

+0

예 RTL이 답이지만 데이터 릿 RTL의 열을 만들기위한 옵션을 찾을 수 없습니다. ,하지만이 옵션은 전체 datagridview RTL을 만들기위한 것입니다 ... – Ehsan

+0

그건 불가능합니다. 'RightToLeft'는 컨트롤에만 적용됩니다. 모든 것을 위해 설정해야합니다. –

0

string에 저장된 모든 문자열은 사실 Unicode.Unicode입니다. 읽기 : Strings in .Net and C#The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

편집 : 변환 기능이 \ x11에서 \ u25c0으로 자동 변경되기를 원하지만 여기서는 \ x11이 거의 모든 인코딩에서 유효하다는 점에 차이점은 일반적으로 문자 \

string reEncodedString = null; 
byte[] unicodeBytes = UnicodeEncoding.Unicode.GetBytes(value); 
byte[] sourceBytes = Encoding.Convert(Encoding.Unicode, 
           sourceEncoding, unicodeBytes); 

당신은 유니 코드로 CP850에서 unicode.org 매핑에 볼 수 있습니다 변환 기능을 유지할 수 있도록 X80, 당신은 그렇게 할 경우에도 마찬가지입니다. 따라서이 변환이 발생하려면 이러한 문자를 수동으로 변경해야합니다.

당신은 또한 당신이 사용하려는 경우 페르시아어 문자 코드

System.Globalization.CultureInfo language = new System.Globalization.CultureInfo("fa-ir"); 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language); 

다시 영어로 문자 코드 세트의이 비트를 사용하는이 라인을 만드는 것이 있는지 확인하려면

System.Globalization.CultureInfo language = new System.Globalization.CultureInfo("en-us"); 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language); 
+0

당신이 말한 답변을 사용했지만 여전히 같은 결과를 얻었습니다 : string reEncodedString = null; byte [] unicodeBytes = UnicodeEncoding.Unicode.GetBytes (result); byte [] sourceBytes = Encoding.Convert (Encoding.Unicode, Encoding.UTF8, unicodeBytes); // 인코딩 utf16 = Encoding.GetEncoding (1200); // 유니 코드 인코딩 message.Operator = 읽기 = Encoding.UTF8.GetString (sourceBytes, 0, sourceBytes.Length); – Ehsan