如何在rft文件中写入字符“é”?

时间:2019-05-22 06:50:49

标签: c# winforms rtf wordpad

我需要将c#中的字符串写入rtf文件中,但是有一些奇怪的问题。
要写文字,我只需使用

 string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".rtf";
 System.IO.File.WriteAllText(fileName, body);

body是一个字符串变量,它从数据库的varchar列中填充。

问题在于字符é像这样打开文件时写字板显示错误

enter image description here

如果我在记事本中打开文件,我会看到

(één schade gevonden -> ander dossier)

所以出于某种黑暗的原因,写字板决定显示字符é,所有字符都这样弄乱了。

我尝试以UTF8或其他unicode编码编写文件,但写字板拒绝将此文件视为rtf并仅显示带有所有标签的纯文本

我还浏览了this页面,该页面告诉我写一个类似\uXXX?的标记,其中XXX应该是定义Unicode UTF-16 code unit number的数字。
但是我找不到要使用的数字,也找不到任何好的示例。

实际上,我什至不知道它的unicode是否相关,字符é甚至不是我需要unicode的字符,这当然是错误的。

反正有人知道如何解决这个问题吗?
我只需要一种方法来使wordpad不会弄乱显示和印刷上的字符é

1 个答案:

答案 0 :(得分:1)

问题是我没有正确编码file_get_contets()文件。
使用Filburt提供的this link,我设法像这样正确地编码了RTF文件。

RTF