我有一个简单的C#Windows窗体应用程序,可以将富文本(从PDF或DOC粘贴)转换为RTF标记。但是每当我粘贴这样的亚洲字符时:
ありがとうございました
RTF标记将字符转换为十六进制等效,如下所示:
\'82\'a0\'82\'e8\'82\'aa\'82\'c6\'82\'a4\'82\'b2\'82\'b4\'82\'a2\'82\'dc\'82\'b5\'82\'bd
任何人都知道是否可以阻止这种情况并让RTF标记保留实际的亚洲字符?我知道它在理论上是可行的,因为如果我将实际字符粘贴到RTF标记窗口中,它们就不会被转换。
这里的每个请求是将RTF文本推送到纯文本字段的实际代码...这是亚洲字符转换的点:
private void rtfBox_TextChanged(object sender, EventArgs e){
plainTextBox.Text = rtfBox.Rtf.ToString();
}
如果有人想进一步了解应用程序的来源: https://github.com/cemerson/RTFMarkupHelper
相关/可能重复:
答案 0 :(得分:-1)
它保留了亚洲人物。十六进制编码未在RTF spec使用的ANSI编码中直接表示的unicode值。在“保存RTF”按钮下添加以下代码,您将能够将文件另存为.rtf文件,然后在wordpad / etc中打开它。
private void button6_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "RTF File|*.rtf";
sfd.DefaultExt = ".rtf";
if (sfd.ShowDialog() == DialogResult.OK)
{
FileInfo fi = new FileInfo(sfd.FileName);
StreamWriter sw = new StreamWriter(fi.OpenWrite());
sw.Write(textBox.Text);
sw.Close();
}
}