众所周知,从 RichTextBox / FlowDocument 创建 RTF 非常简单:
[...]
someTextRange.Save(stream, DataFormats.Rtf);
[...]
但是,当在 Hyperlink Targets 中使用特殊字符时,这些字符会被一些(xml 编码?)字符替换,导致稍后在使用 rtf 时链接断开。甚至无法转换回 rtf(使用众所周知的方法通过 TextRange.Load),因为 URI 创建失败。
奇怪的是,这些特殊字符在普通文本或超链接显示文本中使用时不会被替换。仅替换 URI 本身中的字符。
例子:
链接目标
www.test.com/this&that (
转换为(不带空格)
www.test.com/this&那个
有任何想法吗?
提前致谢,
亨宁