关于text:C#:将* .txt加载到RichTextBox并转换为UTF8

C#: Load *.txt to RichTextBox and convert into UTF8

我想打开文本文件并将其加载到richtextbox中。到目前为止,这一切进展顺利,但现在我正努力解决一个编码问题。

所以我使用了StackOverflow页面中的getType()方法:如何找出文件的编码?C.*-它返回"system.text.unicodeencoding"。

我现在的问题是:

  • 如何将unicode(我想这就是它们的原貌,尽管我没有进行双重检查)转换为utf8(可能是向后转换)?
  • 我可以切换richtextbox以正确显示unicode吗?下面显示了令人尴尬的结果:rtb.LoadFile(aFile, RichTextBoxStreamType.PlainText);
  • 如何定义savefiledialog应该使用哪种编码?


不要让richtextbox从磁盘加载文件,而是自己加载文件,同时指定正确的编码。(顺便说一下,Encoding.Unicode只是"utf-16 little endian"的同义词。)

1
string myText = File.ReadAllText(myFilePath, Encoding.Unicode);

这将为您处理转换。您得到的字符串是"正确"编码的(即.NET内部使用的格式),因此您可以将其分配给richtextbox的Text属性。

关于您的第三个问题:SaveFileDialog只是一个允许用户选择文件名的工具。对文件名所做的操作(例如:将一些文本保存到文件名中,或者对一些字符串进行编码,然后保存它)与savefiledialog无关。


savefiledialog只允许您选择保存文件的路径。它不能为你保存它……

使用编码类从一个编码转换为另一个编码。

并阅读本文以获取一些关于如何将其转换并写入文件的示例。