RichTextbox,VB.NET中的RTF

时间:2012-03-30 19:20:09

标签: vb.net rtf

我在vb.net中使用richtextbox,其中包含值“секция”,这是俄语单词。

rtf1.selectedrtfrtf.rtf,它会返回/Un个字符的表示形式。 rtf中是否有任何方式或选项可以返回\uXXXX格式的值?

секция='f1\'e5\'ea\'f6\'e8\'ff 
секция=\u0441\u0435\u043A\u0446\u0438\u044F (<-- i need this format)
=============================
rtf1.text=секция
rtf1.selectedrtf returns
"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset204{\*\fname Arial;}Arial CYR;}}  \uc1\pard\b\protect\f0\fs16\'f1\'e5\'ea\'f6\'e8\'ff}  "  

2 个答案:

答案 0 :(得分:1)

我有一个小函数将unicode字符串转换为unicode rtf文本。

Private Function UnicodeStringToRtfText(str As String) As String
    Dim arrStr As Char() = str.ToCharArray()
    Dim retStr As String = ""
    For Each ch As String In arrStr
        If (AscW(ch) > 122) Then
            retStr &= "\u" & AscW(ch) & "?"
        Else
            retStr &= ch
        End If
    Next
    Return retStr
End Function

希望这有帮助!

答案 1 :(得分:0)

您可以使用System.Text中的Encoding类来获取utf 8中的格式。

例如:

Encoding.UTF8.GetBytes(RichTextBox1.Text)

有关详细信息,请查看msdn上的以下链接:

Encoding.UTF8 Property 它有很好的编码示例,您可以遵循。我没有找到设置richtextbox的编码,但你可以使用编码类来获得你想要的格式。