[英]RIchTextBox Rtf encoding
我在 wpf 中創建了一個富文本框,我可以在其中 select 文本並將其鏈接到文件或資源。 假設我想在文本框中添加一些文本並將超鏈接添加到D:\cdrréper
我附上部分代碼:
_link.CommandParameter = path;
_link.NavigateUri = new Uri(path, UriKind.Absolute);
_link.IsEnabled = true;
using (MemoryStream ms = new MemoryStream()) {
TextRange tr = new TextRange(_link.ContentStart, _link.ContentEnd);
tr.Save(ms, DataFormats.Rtf);
richTextBox.Selection.Load(ms, DataFormats.Rtf);
}
加載后富文本框中的當前文本值為
{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Arial;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;\red0\green102\blue204;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ul\cf3\ltrch {\field{\*\fldinst { HYPERLINK "D:\\\\cdrr'e9per" }}{\fldrslt {something}}}}\li0\ri0\sa75\sb75\fi0\ql\par}
}
}
RTF 中的超鏈接值為{ HYPERLINK "D:\\cdrr'e9per" } 。 當我嘗試訪問路徑時,由於無法建立,該路徑無法正常工作。 é字符編碼不正確。 你對我如何解決這個問題有什么建議嗎? 謝謝你的幫助。
在超鏈接部分需要在 'e9. 當我們將 rtf 字符串加載到 TextRange 時,我們需要將其加載為 Xaml。
tr.Load(ms, DataFormats.Xaml);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.