2010-08-17 2 views
2

사용자 지정 컨트롤에 임의의 텍스트를 쓰려고합니다.
내 코드는 작동하지만 ü 같은 문자를 그릴 때 문자가있는 빈 사각형을 표시합니다.
지역화 지원을 위해이 기능이 필요합니다.
나는 이미 확인했는데, Tahoma는 필수 문자를 가지고있다. 내 코드는 다음과 같습니다.C# Graphics.DrawString 특수 문자를 렌더링하지 않습니까?

string _Label = "Zurück"; 
Font labelFont = new Font("Tahoma", 9, FontStyle.Bold); 
SizeF labelSize = e.Graphics.MeasureString(_Label, labelFont); 
this.Width = (int)(labelSize.Width + this.Padding.Horizontal); 
e.Graphics.DrawString(_Label, labelFont, Brushes.White, new PointF(this.Padding.Left, this.Padding.Top)); 

누구나 해결 방법을 알고 계십니까?

답변

2

: \ u00FC는 유니 코드로 파일에

읽기 찾고있는 자이어야한다 글리프. 당신은 그 경우가 아니라는 것을 압니다, Tahoma는 분명히 ü를 가지고 있습니다. 즉, 실제 문제는 파일을 올바르게 작성하지 않았다는 것입니다.

파일의 텍스트가 인코딩되는 방법을 알아야합니다. UTF8이 아니라는 것을 알면 StreamReader의 기본값입니다. 다음 추측은 아마도 다음과 같아야합니다.

 var sr = new StreamReader(path, Encoding.Default); 
     // Read file... 
+0

여기에 쿠키가 있습니다! 흥미롭게도 인코딩을 지정하지 않은 경우보다 char의 정수 값이 0xFF01 높습니다. – Origamiguy

0

글꼴을 만들면 char (charmap 또는 something 사용)을 지원하고 유니 코드를 사용합니다.

예 : 사용하는 글꼴이 포함되지 않은 경우 당신은 사각형을 볼 수 있습니다

StreamReader UnicodeFileRead new StreamReader(input, System.Text.Encoding.Unicode); 
+0

감사합니다. 하드 코드 된 경우 작동합니다! 그러나 외부 파일에서 내 문자열을로드하고 있는데 그런 식으로 벗어날 수는 없습니다. – Origamiguy

+0

편집 된 답변, 유니 코드로 읽는 것이 효과가 있을지는 확실하지 않지만 꼭해야합니다. – Blam

+0

아니, 작동하지 않았다. 어쨌든 지금 고칠 때 걱정하지 마십시오. Encoding.Default works (: – Origamiguy

관련 문제