ご存知のように、RichTextBox / FlowDocument から RTF を作成するのは非常に簡単です。
[...]
someTextRange.Save(stream, DataFormats.Rtf);
[...]
ただし、ハイパーリンク ターゲットで特殊文字を使用すると、後で rtf を使用するときに、これらの文字が一部の (xml でエンコードされた?) 文字に置き換えられ、リンクが壊れます。URI の作成が失敗するため、(TextRange.Load を介したよく知られた方法を使用して) rtf に戻すことさえできません。
奇妙なことに、これらの特殊文字が通常のテキストまたはハイパーリンクの表示テキストで使用されている場合、これらの特殊文字は置き換えられません。URI 自体の文字のみが置き換えられます。
例:
リンク先
www.test.com/this&that (
(スペースなし) に変換されます
www.test.com/this& amp ;that
何か案は?
前もって感謝します、
ヘニング