2012-03-30 2 views
2

J'utilise richtextbox dans vb.net, qui contient la valeur "секция", qui est un mot russe.RichTextbox, RTF dans VB.NET

rtf1.selectedrtf et rtf.rtf, il renvoie /Un représentation des caractères. Existe-t-il un moyen ou une option dans rtf pour renvoyer la valeur au format \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} " 
+0

Vous remarquerez que votre RTF utilise le code page 204. Ce que vous demandez est le nombre d'octets codés Unicode. Deux bêtes différentes. Trouver une page de code ANSI au convertisseur Unicode. Ou écrivez-en un. –

Répondre

0

Vous pouvez utiliser la classe de codage trouvé dans System.Text pour obtenir le format utf 8.

Par exemple:

Encoding.UTF8.GetBytes(RichTextBox1.Text) 

Pour plus de détails vous pouvez consulter le lien suivant à msdn:

Encoding.UTF8 Property Il a de bons exemples de codage que vous pouvez suivre. Je n'ai pas trouvé de toute façon de définir l'encodage pour une riche boîte de texte mais vous pouvez utiliser la classe d'encodage pour obtenir le format que vous désirez.

1

J'ai une petite fonction pour convertir une chaîne unicode en texte rtf unicode.

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 

Espérons que cette aide!

+0

'> 122' devrait être'> 126', non? Ces codes ASCII sont 123 '{', 124 '|', 125 '}' et 126 '~'. Voir les [codes imprimables ASCII] (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart). De mes tests, ils sont ajoutés correctement à mon RichTextBox. De plus, les paires de substitution ne sont pas manipulées, mais elles sont peut-être rares. – Ron

Questions connexes