首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在将rtf字符串应用于阿拉伯语文本时给出“?”而不是对其应用格式?

为什么在将rtf字符串应用于阿拉伯语文本时给出“?”而不是对其应用格式?
EN

Stack Overflow用户
提问于 2013-10-22 14:34:16
回答 1查看 973关注 0票数 1

我正在尝试通过提取标题样式的rtf字符串来应用标题样式,就像在MS Word中一样。实际上,rtf字符串适用于英语文本,并对其应用格式化,但当它应用于乌尔都语文本时,它会给出格式化的“?”。

让我从例子中给你们解释一下:

我选择了用乌尔都语写成的单词“اللغةالعربية”,并且我已经有了一个包含MS word标题样式的rtf的字符串:{\rtf1\ansi\ansicpg1252... "اللغة العربية"...},我在其中添加了这个字符串,以便获得一个格式化的字符串。

但它给出的不是格式化的اللغةالعربية,而是格式化的问号“?”我认为这是编码或字体问题。所以请告诉我如何将rtf字符串应用到Urdu以获得格式化的文本?

EN

回答 1

Stack Overflow用户

发布于 2013-10-22 21:38:25

您需要使用函数将字符串中的unicode字符转换为其对应的rtf代码:

代码语言:javascript
运行
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19510651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档