我正在尝试通过提取标题样式的rtf字符串来应用标题样式,就像在MS Word中一样。实际上,rtf字符串适用于英语文本,并对其应用格式化,但当它应用于乌尔都语文本时,它会给出格式化的“?”。
让我从例子中给你们解释一下:
我选择了用乌尔都语写成的单词“اللغةالعربية”,并且我已经有了一个包含MS word标题样式的rtf的字符串:{\rtf1\ansi\ansicpg1252... "اللغة العربية"...},我在其中添加了这个字符串,以便获得一个格式化的字符串。
但它给出的不是格式化的اللغةالعربية,而是格式化的问号“?”我认为这是编码或字体问题。所以请告诉我如何将rtf字符串应用到Urdu以获得格式化的文本?
发布于 2013-10-22 21:38:25
您需要使用函数将字符串中的unicode字符转换为其对应的rtf代码:
static string GetRtfUnicodeEscapedString(string s)
{
var sb = new StringBuilder();
foreach (var c in s)
{
if(c == '\\' || c == '{' || c == '}')
sb.Append(@"\" + c);
else if (c <= 0x7f)
sb.Append(c);
else
sb.Append("\\u" + Convert.ToUInt32(c) + "?");
}
return sb.ToString();
}点击此处:https://stackoverflow.com/a/9988686/1543816
整数值大于127 (7f十六进制)的字符将转换为\uxxxx?其中xxxx是字符的unicode。
https://stackoverflow.com/questions/19510651
复制相似问题