首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.Net中将UTF转换为RTF转义序列

在.Net中将UTF转换为RTF转义序列
EN

Stack Overflow用户
提问于 2013-10-04 06:38:50
回答 1查看 449关注 0票数 0

我有一些UTF西里尔文字,需要插入RTF文件。RTF文件倾向于使用\'00或\u0000将西里尔文本存储为转义序列。

因为文本是用.NET写的,我猜是UTF-16。作为一个具体的例子,我有这个文本"4 окт 2013"。奥特是西里尔的文字。

以о为例,Unicode十进制为1086,UTF-8小数点为208190。

我想做的是让Regex (在.NET中)识别像这样的字符,这些字符需要转换成RTF转义序列,因为它们可以被本地识别。

在.NET中有哪些Regex选项可以帮助识别这样的字符?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-04 07:31:45

我能够使用匹配所有非基本拉丁语的Regex,并转换为RTF unicode转义序列。

代码语言:javascript
运行
复制
const string RTFSpecialsInUTF = @"(\P{IsBasicLatin})";

private static Regex UTFSpecialRegex = new Regex(RTFSpecialsInUTF, RegexOptions.Compiled);

private static string ReplaceDirect(Match match) {
    int codepoint = (int)Convert.ToChar(match.Groups[1].Value);
    if (!(codepoint < 32768)) {
        codepoint = codepoint - 65536;
    }
        return string.Format("\\u{0}?", codepoint);
}

/* Usage */
value = UTFSpecialRegex.Replace(value, new MatchEvaluator(PDFDocumentRTF.ReplaceDirect));

让我的手指祈祷,这将工作的其他语言,不适合基本拉丁语和RTF非常好(如阿拉伯语)。

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

https://stackoverflow.com/questions/19174872

复制
相关文章

相似问题

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