希腊字母显示问题

时间:2018-07-24 14:24:39

标签: c# winforms c#-4.0 richtextbox

我想在Richtextbox(winforms 4.5.2)中显示希腊字母lambda。

我的RTF如下所示:

richTextBox1.Rtf = "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fswiss\\fcharset0 Arial;}}\\uc1\\pard\\f0\\fs24 pdioxaborolan-2-yl)phenyl]-λ⁶-sulfane}";

,但它始终将λ⁶显示为两个? (问号)

我还尝试直接用\u03BB代替希腊符号,但输出没有任何变化。

请帮助显示希腊字母。

如果我直接分配文本,那么它将起作用。

richTextBox1.Text = "pdioxaborolan-2-yl)phenyl]-λ⁶-sulfane";

(在这种情况下,lambda显示为希腊字母,但上标显示为方框)

谢谢...

1 个答案:

答案 0 :(得分:0)

简短的答案是您显示的RTF不支持字符,我猜是字体。

作为测试,我在Richtextbox(RTB)中添加了一些文本。 RTB的字体不支持这些字符。有了这段代码,我就可以将您的文本正确地添加到RTB的末尾

    RichTextBox1.SelectionStart = RichTextBox1.TextLength - 1
    RichTextBox1.SelectionLength = 0

    RichTextBox1.SelectedRtf = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}{\f1\fnil\fcharset161{\*\fname Times New Roman;}Times New Roman Greek;}}\uc1\pard\f0\fs24 pdioxaborolan-2-yl)phenyl]-\f1\'eb\f0\u8310?-sulfane}"

结果

sd              486
sdivs             1
------------
Total           531

Other           540  e.g. text, comment

pdioxaborolan-2-yl)phenyl]-λ⁶-sulfane