J'ai regardé autour de Google et Stackoverflow mais je n'ai pas trouvé ce dont j'avais besoin, mais ma question semble assez simple. De toute façon; Quel est le moyen de convertir une chaîne de caractères spéciaux RTF tels que "\ 'd3 \' d6" (dans ce cas en russe) en caractères unicode ou une chaîne utilisant C#?Sortie caractères spéciaux RTF à Unicode
3
A
Répondre
6
un des éléments suivants devrait aider:
- Rich Text Format (RTF) Specification, version 1.6, Special Characters. en fonction de cela,
\'d3\'d6
sont valeur hexadécimale [s], sur la base du jeu de caractères spécifié. Vous pouvez donc écrire votre propre fonction de traitement, comme diviser la chaîne en\'
, en convertissant un hex en caractère, en le rejoignant et en le convertissant en unicode. - How to: Convert RTF to Plain Text
- NRTFTree - A class library for RTF processing in C#
- Questions on SO tagged rtf and c#
- Google search "rtf c#"
0
Vous pouvez convertir ces caractères:
int findUTF = -1;
bool continueUTFSearch = true;
do
{
findUTF = HTMLText.IndexOf(@"\'", findUTF + 1);
if (findUTF != -1)
{
string replacedString = HTMLText.Substring(findUTF, 4);
string esacpeddString = replacedString.Substring(2);
int esacpeddCharValue = Convert.ToInt16(esacpeddString, 16);
char esacpeddChar = Convert.ToChar(esacpeddCharValue);
esacpeddString = esacpeddChar.ToString();
HTMLText = HTMLText.Replace(replacedString, esacpeddString);
findUTF = -1;
}
else
{
continueUTFSearch = false;
}
}